問題タブ [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.
ios - SpriteKit で物理演算を遅くしたり停止したりできますか?
シンプルさを目指すフレームワークにはその方法があり、私が今行っているように物理会計からすべてのノードを削除しないように思えます:
これが初心者の質問である場合は申し訳ありません。SpriteKit を使い始めたばかりです。ありがとう!
objective-c - applyImpulse を使用してカスタム ベジェ パスをたどって、ポイント A からポイント B にノードを移動する方法
SKPhysicsBody の applyImpulse メソッドを使用して、カスタム ベジェ パスをたどって、ポイント A からポイント B にノードを移動できるようにしたいと考えています。applyImpulse を使用する理由は、最初のインパルスに応じて自然な動き (速く開始して遅くなる) をシミュレートするためです。applyImpulse を介してオブジェクトにインパルスを適用すると、環境との摩擦によって速度がゼロになったときにのみ停止するようです。私はそれが私の道をたどり、最後に止まるようにしたい. どうすればそれについて行くことができますか?
ios - SKPhysicsContactDelegate プロトコル メソッドが呼び出されていない
私の .h ファイルでは、デリゲートを次のように追加しました。
そして、私の.mファイルにはこれがあります
私にもノードがあり、それらは時々互いに接触します。彼らはphysicsBodyプロパティを正しく設定しており、何が問題なのかわかりません。何が問題なの?ありがとう!
ios - 物理体カテゴリのビットマスク値の設定
次のように、コードでさまざまなビットマスク カテゴリを宣言しています。
私のゲームは、これらのカテゴリを使用して問題なく動作しています。
ただし、さまざまなサンプル プロジェクトやチュートリアルでは、ビットマスク値が次のように定義されています。
質問
これらの値を宣言するためにこのメソッド (ビットごとのシフト) が使用されるのはなぜですか? また、これらの値を宣言し、連絡先デリゲートで比較するのに最適な方法はどれですか?
ios - SKPhysicBody が間違った位置にある
シンプルなスプライト キット ゲームを作成していますが、スプライトの 1 つに PhysicsBody を追加すると、間違った位置にあるように見えます。設定したとおりに間違った位置にあり、間違った位置に表示されていることはわかってい
skView.showsPhysics = YES;
ます。
下隅の正方形は、最初の半円の物理体です。現在、テスト目的で正方形を使用しています。
私のアプリにはビュー フォローが含まれており、移動時にメイン スプライトをフォローします。これを実装するには、リンゴのドキュメントに従い、「myworld」ノードを作成し、そのノードから他のすべてのノードを作成しました。
ノードを中心にするために、これらのメソッドを呼び出します
私の世界が SkPhysics 本体に影響を与えるかどうかはわかりません...
ios - PhysicsBody 衝突で SpriteKit FPS が低い
私の SpriteKit ゲームでは、ランダムに配置された多数のタイル ノード (>100) があり、タイルとキャラクター ノード間の衝突を検出できる必要があります。これを行うには、SKPhysicsBody を使用します。
SKPhysicsBody コードを有効にすると、フレーム レートが約 40 fps に低下することがわかりましたが、コードをコメント アウトすると、60 fps に上がります。これは、エンジンがフレームごとに 100 以上のノードの物理をシミュレートしようとしていることに関係していると思います...これが起こらないようにしながら、キャラクターとタイルの間の衝突を検出する方法はありますか?
タイルの物理演算については、タイルに次のコードを使用しています。
そして私のキャラクターのために:
objective-c - SKScene に境界を追加する
Apple のスプライト キット フレームワークを使用して基本的なゲームを作成しようとしています。これまでのところ、SKPhysicsBody を使用して、船が画面の周りを飛んでいます。船が画面から飛び出さないようにしたいので、更新メソッドを編集して船の速度をゼロにしました。これはほとんどの場合機能しますが、時々、船が画面から飛び出します。
これが私の更新方法です。
最初は、船を押し戻すのに使っていapplyImpulse
ました。didBeginContact
これにより船が跳ね返りましたが、船が跳ね返りたくありません。端っこで止めてほしい。
船が端に着いたら船を止める正しい方法は何ですか? 上記のコードはほとんどの場合機能しますが、時々、船が画面から飛び出します。これは iOS ではなく OS X 用です。
ios - SKPhysicsJoints が接続された SKSpriteNode をズーム/スケールできません
ゲームで「ズーム」インおよびズームアウトできるようにしたいのですが、親の「ワールド」SKNode をスケーリングすると、ジョイントは SKScene (ルート ノード) に追加する必要があるため、それに応じてスケーリングされません。 .
SKScene のサイズを変更することはできますが、私が子供として持っている HUD グラフィックスはそれに合わせて拡大縮小されます。
HUD を SKView の子として作成することを検討しましたが、Apple の推奨に反するようです。また、SKScene トランジションを使用する利点が失われ、代わりに多数の ViewController を処理することになります。
SKSpriteNode をスケーリングし、それに合わせてジョイントをスケーリングする方法に関する提案はありますか?
ios - 無視される SKPhysicsBodies 間の衝突
アプリで物理と衝突検出にスプライト キットを使用しています。
いくつかのボールが箱に落ちています。ボックスの内側は bodyWithPolygonFromPath を使用して定義されます
いくつかのボールを箱に落とすと、まっすぐ落ちます。
ボックスを定義するコードは次のとおりです。
SKShapeNode の最後のビットは、デバッグ目的でボックスの輪郭を描画するだけです。描画されたボックスは、衝突ボックスがあると予想される場所です。
ボックスにドロップするボールのコードは次のとおりです。
上記のコード スニペットの self のすべてのインスタンスは、SKScene に直接接続されている同じ SKNode です。
衝突検出が無視される原因について何か提案はありますか?
ios - スプライト キットのコリジョン検出は、画面の左右の端のみ
そのため、ヒーローを画面の端に衝突させたいのですが、上下の壁ではなく、左右の壁だけに衝突させます。
今まで私は私のでこれを設定しました-(id)initWithSize:(CGSize)size
:
私のヒーローは彼の方法でこれを持っています:
これまでのところすべてがうまく機能していますが、画面全体が物理的な体であるため、私のヒーローはすべてのエッジと衝突します. 彼を壁だけに衝突させる方法はありますか?
みんな助けてくれてありがとう