問題タブ [skview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 新しい SKSpriteNode を SKScene に追加すると、断続的な遅延が大きくなります
標準の UIViewController ( TestViewController ) があり、このコントローラーのviewWillLayoutSubviewsメソッドで、新しい SKView サブクラス ( TestView ) をインスタンス化し、サブビューとしてコントローラーのビューに追加します。さらに、ユーザーが SKScene サブクラス ( TestScene ) でアクションを制御できるようにするためのボタンをいくつか追加します。TestSceneは、TestViewのinitメソッドでインスタンス化されます。TestViewがサブビューとしてTestViewController のビューに追加された直後に、単に呼び出すTestViewのメソッドである[testView presentScene]も呼び出します。[自己 presentScene: testScene] .
TestViewControllerで前述のボタンを押すことは、新しい SKSpriteNode サブクラス ( TestSpriteNode ) をインスタンス化し、子としてシーンに追加する( TestViewを介して) TestSceneでメソッドを呼び出すことを意味します。これは機能しますが、最初のTestSpriteNodeが追加されると、新しいスプライトをレンダリングするTestSceneで断続的に長い遅延が発生するという問題があります。時々それは完全に機能しますが、ほとんどの場合は動かなくなり、ボタンを複数回押すと複数のスプライトが一度に表示され、その後すべてが完全に機能します. この問題は、シミュレーターと私のデバイスで発生することに注意してください。
TestScene の- (void)didMoveToView:(SKView*)viewに新しいTestSpriteNodeを追加しようとしましたが、TestSpriteNodeがすぐに表示され、ボタンを押して新しいTestSpriteNodeを追加すると遅延が発生します。ボタンを押すとTestSceneで呼び出されるメソッドにブレーク ポイントを追加すると、すぐに呼び出されることがわかりますが、追加されたTestSpriteNodeはすぐにはレンダリングされません。
動的に追加された SKSpriteNodes のレンダリングの遅延に対処する回答が既にある場合は、事前にお詫び申し上げます。私はそれを見つけることができませんでした。新しい SKSpriteNodes を SKScene に追加することについて、私が誤解していることはありますか?
ios - MKMApKit CGPoint を SKView に変換する
MKMapKitから取得したCGPointを経由で変換する方法
SpriteKit の SKView 座標系に? (SKView も MapKit のビューと同様に全画面表示です)。
objective-c - SpriteKitシーンをNSImageにレンダリング/スナップショット
SKView
完全またはSKScene
に「スナップショット」する方法を知っている人はいますNSImage
か?
textureFromNode
API を使用しSKTexture
て、ノードとそのすべての子から を作成できました。しかし、これまでのところ、画像データを抽出してNSImage
. シーンの小さなサムネイルを抽出する必要がある混合Cocoa
/アプリを構築しています。SpriteKit
繰り返しますが、これはiOSで(を取得するためにUIImage
)次を使用して可能であるようですdrawViewHierarchyInRect
:
しかし、これをどのように行うCocoa
のNSImage
ですか?ヘルプ。
objective-c - SKScene での UICollectionView の使用
複数の SKScenes を含むアプリがあります。スムーズに保つために、1 つの SKView を処理する単一の UIViewController があります。
SKScenes の 1 つに UICollectionView を追加しようとしています。ただし、コレクション ビューのデリゲートを初期化する SKScene に設定しようとすると問題が発生します。
ここで初期化します:
初期化後、以下を呼び出してコレクション ビューを UIViewController のビューのサブビューとして追加します。
ただし、デリゲートまたはデータソース メソッドは呼び出されません。ヘッダーを設定しました:
self をデリゲートとして設定しても、コレクション ビューが追加されると、UIViewController の SKView のサブビューとして追加されるため、初期化した SKScene への参照がないと推測しています。私は電話してみました:
しかし、SKScene は UICollectionViewDelegate と互換性のない型であるというコンパイラ エラーが発生します。
だから私の質問は、これにどのようにアプローチするのが最善ですか?
ios - タイマーを使用して表示された後に SKscene の背景色を変更する
そのため、テスト中のアプリの Skview 内に skscene をセットアップしました。こんな感じで背景色などを設定します。
次に、すでに提示されているシーンで背景の背景色をランダムに変更したいと思います。5秒後に呼び出される標準タイマーを添付しました。その中で次のようなことを行います:
でも更新しないの?「[skView presentScene:scene];」でシーンを表現してみました しかし、うまくいきません。
uiviewcontroller - ビュー方向が分離された 2 つの SKScene オブジェクト
2 つの SKScene オブジェクトがあると仮定しました。最初の SKScene は縦向きビューのみをサポートする必要があり、2 番目の SKScene は横向きビューのみをサポートする必要があり、実際には最初の SKScene によって開始されます。これはそのように実装できますか、または2つのViewControllerのみで実装できますか?
よろしくSKNode
ios - SKScene を閉じるには?
SKScene を使い終わったら、SKScene クラス内から SKScene を閉じる方法はありますか?
SKScene を表示する Viewcontroller に戻らない場合 [skView presentScene:theScene];
、シーンを再起動する方法や SKView から削除する方法はありますか?
SKSceneクラス リファレンスとSKView クラス リファレンスは役に立ちません。
アップデート:
次のコードは、SKView からシーンを削除[yourSKView presentScene:nil];
しますが、ビュー コントローラーに戻ったとき、シーンはまだバックグラウンドで実行されています。ゲームが終了したらいつでも一時停止でき、View Controller(メニュー)に戻されますが、完全に削除するように一時停止する以外に別の方法があるのでしょうか?