問題タブ [skphysicsbody]

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 投票する
3 に答える
2767 参照

ios - SpriteKit で物理演算を遅くしたり停止したりできますか?

シンプルさを目指すフレームワークにはその方法があり、私が今行っているように物理会計からすべてのノードを削除しないように思えます:

これが初心者の質問である場合は申し訳ありません。SpriteKit を使い始めたばかりです。ありがとう!

0 投票する
2 に答える
346 参照

objective-c - applyImpulse を使用してカスタム ベジェ パスをたどって、ポイント A からポイント B にノードを移動する方法

SKPhysicsBody の applyImpulse メソッドを使用して、カスタム ベジェ パスをたどって、ポイント A からポイント B にノードを移動できるようにしたいと考えています。applyImpulse を使用する理由は、最初のインパルスに応じて自然な動き (速く開始して遅くなる) をシミュレートするためです。applyImpulse を介してオブジェクトにインパルスを適用すると、環境との摩擦によって速度がゼロになったときにのみ停止するようです。私はそれが私の道をたどり、最後に止まるようにしたい. どうすればそれについて行くことができますか?

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

ios - SKPhysicsContactDelegate プロトコル メソッドが呼び出されていない

私の .h ファイルでは、デリゲートを次のように追加しました。

そして、私の.mファイルにはこれがあります

私にもノードがあり、それらは時々互いに接触します。彼らはphysicsBodyプロパティを正しく設定しており、何が問題なのかわかりません。何が問題なの?ありがとう!

0 投票する
2 に答える
1142 参照

ios - 物理体カテゴリのビットマスク値の設定

次のように、コードでさまざまなビットマスク カテゴリを宣言しています。

私のゲームは、これらのカテゴリを使用して問題なく動作しています。

ただし、さまざまなサンプル プロジェクトやチュートリアルでは、ビットマスク値が次のように定義されています。

質問

これらの値を宣言するためにこのメソッド (ビットごとのシフト) が使用されるのはなぜですか? また、これらの値を宣言し、連絡先デリゲートで比較するのに最適な方法はどれですか?

0 投票する
2 に答える
529 参照

ios - SKPhysicBody が間違った位置にある

シンプルなスプライト キット ゲームを作成していますが、スプライトの 1 つに PhysicsBody を追加すると、間違った位置にあるように見えます。設定したとおりに間違った位置にあり、間違った位置に表示されていることはわかってい skView.showsPhysics = YES; ます。

ここに画像の説明を入力

下隅の正方形は、最初の半円の物理体です。現在、テスト目的で正方形を使用しています。

私のアプリにはビュー フォローが含まれており、移動時にメイン スプライトをフォローします。これを実装するには、リンゴのドキュメントに従い、「myworld」ノードを作成し、そのノードから他のすべてのノードを作成しました。

ノードを中心にするために、これらのメソッドを呼び出します

私の世界が SkPhysics 本体に影響を与えるかどうかはわかりません...

0 投票する
2 に答える
1015 参照

ios - PhysicsBody 衝突で SpriteKit FPS が低い

私の SpriteKit ゲームでは、ランダムに配置された多数のタイル ノード (>100) があり、タイルとキャラクター ノード間の衝突を検出できる必要があります。これを行うには、SKPhysicsBody を使用します。

SKPhysicsBody コードを有効にすると、フレーム レートが約 40 fps に低下することがわかりましたが、コードをコメント アウトすると、60 fps に上がります。これは、エンジンがフレームごとに 100 以上のノードの物理をシミュレートしようとしていることに関係していると思います...これが起こらないようにしながら、キャラクターとタイルの間の衝突を検出する方法はありますか?

タイルの物理演算については、タイルに次のコードを使用しています。

そして私のキャラクターのために:

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

objective-c - SKScene に境界を追加する

Apple のスプライト キット フレームワークを使用して基本的なゲームを作成しようとしています。これまでのところ、SKPhysicsBody を使用して、船が画面の周りを飛んでいます。船が画面から飛び出さないようにしたいので、更新メソッドを編集して船の速度をゼロにしました。これはほとんどの場合機能しますが、時々、船が画面から飛び出します。

これが私の更新方法です。

最初は、船を押し戻すのに使っていapplyImpulseました。didBeginContactこれにより船が跳ね返りましたが、船が跳ね返りたくありません。端っこで止めてほしい。

船が端に着いたら船を止める正しい方法は何ですか? 上記のコードはほとんどの場合機能しますが、時々、船が画面から飛び出します。これは iOS ではなく OS X 用です。

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

ios - SKPhysicsJoints が接続された SKSpriteNode をズーム/スケールできません

ゲームで「ズーム」インおよびズームアウトできるようにしたいのですが、親の「ワールド」SKNode をスケーリングすると、ジョイントは SKScene (ルート ノード) に追加する必要があるため、それに応じてスケーリングされません。 .

SKScene のサイズを変更することはできますが、私が子供として持っている HUD グラフィックスはそれに合わせて拡大縮小されます。

HUD を SKView の子として作成することを検討しましたが、Apple の推奨に反するようです。また、SKScene トランジションを使用する利点が失われ、代わりに多数の ViewController を処理することになります。

SKSpriteNode をスケーリングし、それに合わせてジョイントをスケーリングする方法に関する提案はありますか?

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

ios - 無視される SKPhysicsBodies 間の衝突

アプリで物理と衝突検出にスプライト キットを使用しています。

いくつかのボールが箱に落ちています。ボックスの内側は bodyWithPolygonFromPath を使用して定義されます

いくつかのボールを箱に落とすと、まっすぐ落ちます。

ボックスを定義するコードは次のとおりです。

SKShapeNode の最後のビットは、デバッグ目的でボックスの輪郭を描画するだけです。描画されたボックスは、衝突ボックスがあると予想される場所です。

ボックスにドロップするボールのコードは次のとおりです。

上記のコード スニペットの self のすべてのインスタンスは、SKScene に直接接続されている同じ SKNode です。

衝突検出が無視される原因について何か提案はありますか?

0 投票する
2 に答える
2172 参照

ios - スプライト キットのコリジョン検出は、画面の左右の端のみ

そのため、ヒーローを画面の端に衝突させたいのですが、上下の壁ではなく、左右の壁だけに衝突させます。

今まで私は私のでこれを設定しました-(id)initWithSize:(CGSize)size

私のヒーローは彼の方法でこれを持っています:

これまでのところすべてがうまく機能していますが、画面全体が物理的な体であるため、私のヒーローはすべてのエッジと衝突します. 彼を壁だけに衝突させる方法はありますか?

みんな助けてくれてありがとう