問題タブ [skscene]

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.

0 投票する
4 に答える
8717 参照

ios7 - iOS7 SKScene スプライトを画面の端から跳ね返す方法は?

iPad の画面内でボールが跳ねるゲームを作成しています。ポンゲームに似ています。SKScene の SKPhysicsWorld には重力プロパティがあり、オブジェクト同士の衝突方法も制御していることがわかりました。

スプライトの端が画面の端に衝突したかどうかを自動的に検出できる方法はありますか? または、独自の衝突コードを作成する必要がありますか?

0 投票する
1 に答える
581 参照

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 に追加することについて、私が誤解していることはありますか?

0 投票する
6 に答える
1139 参照

ios - SKLabelNode を呼び出すときに遅延しますか?

移行時にわずかな遅延 (ラグ) が発生するという問題がありSKSceneます。これを に絞り込んだコードのさまざまなビットをコメントアウトすることSKLabelNodeで、新しいSKScene.

他の誰かがこれに気づいたことがありますかSKScene?通常の起動遅延でスローダウンが失われるため、(デフォルトのテンプレートのように)単一のものを使用するだけではあまり明白ではありません. これを回避する方法を知っている人はいますか?フォントをプリロードする方法はありますか? UIViewController起動時にフォントをロードして、からアクセスできるかどうかを確認できると思いますSKScene。誰かアイデアはありますか?

0 投票する
0 に答える
167 参照

objective-c - [SKScene enumerateObjectsUsingBlock:] 中に SKAction が機能しない

SKActionからノードを削除する前に、いくつかのアニメーションを追加しますSKScene。私がやろうとしているとき、SKAction は 10-40 から最初の 2-4 スプライトだけを実行しました。私がコメントし[node runAction:action];て、[node removeFromParent];すべてうまくいくとすれば。誰かが私を助けてくれますか、私がここで間違っていること:

すべてがここにコメントされていることがわかりますがSKAction、すべて正常に動作しますが、アニメーションでそれを行うにはどうすればよいですか? 私はすでに多くの異なるSKActions をsequence試しましたがgrouprunWithCompletion:- 同じ結果で、最初のいくつかのSKNodes で動作しますが、数十で実行しようとしています。

0 投票する
1 に答える
1576 参照

ios - iOS7 Sprite Kit シーン全体をアーカイブしてセーブゲームとして使用できますか?

userDataSKNodeのプロパティを見ていると、次のステートメントに気付きました。

スプライト キットは、ノードに格納されたデータに対して何もしません。ただし、ノードがアーカイブされると、データはアーカイブされます。

これは私に考えさせました-シーンとそのすべての依存/コントローラーをアーカイブすることにより、単一のセーブゲーム機能を実装することは可能ですか?

セーブゲームを保存するためのカスタムデータ構造を記述する必要をなくすために、シーンまたはシーンビューに送信できる魔法の [アーカイブ] メッセージがあるかどうかを理解しようとしています。

0 投票する
1 に答える
721 参照

ios - 状態の復元、SKScene を傍受して一時停止する方法

私は絶対に初歩的な状態の保存と復元、アプリデリゲートのコードを実行しています:

私のアプリも非常に初歩的で、SKScene を含む単一のビューです。このコードは美しく機能し、アプリが中断されたときにアプリとシーンの状態が保存され、再度開いたときに以前の状態に戻ります。

ただし、これはアクション ゲームであるため、状態が復元された後、SKScene の ACTIONS が再び開始されるまでに 1 秒か 2 秒をユーザーに与えたいと思います...物事が始まる前に、ユーザーがコントロールなどに指を戻すことができるようにします移動...したがって、これを行う方法がわかりません。復元プロセスのコールバックの場所です(シーンが復元された後、再起動する前に、すべてのアクションを1、2秒、または何でも好きなだけ一時停止するコードを作成できますか)活用できるコールバック メソッドがあると思いますが、それが何であるかはわかりません。

0 投票する
1 に答える
3776 参照

objective-c - iOS7 スプライト キット スプライト キットで新しいゲームをリセット/開始する方法は?

これまでは、xCode の [再生] ボタンを押すたびに新しいゲームが開始される Sprite Kit ゲームに取り組んできました。今、ゲームをリセットして新しいゲームを開始する「新しいゲーム」ボタンをゲーム内に実装しようとしています。

古いゲーム シーンを確実に削除し、ダングリング リファレンスがないことを確認するには、どのような手順を踏む必要がありますか?

  • シーン内で何らかの手動クリーンアップを行う必要はありますか? (古い viewDidUnload のように) それとも ARC がすべて処理するのでしょうか?
  • シーン内からスーパービューに追加したビュー コントローラー ビューを明示的に削除する必要がありますか?
  • ゲームのリセットに役立つ組み込みメソッドはありますか?

今まで使っていたのはこちら。