問題タブ [skphysicsjoint]
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 の物理ジョイント (およびおそらく物理ボディ プロパティ) で苦労しています。すべてのサブクラスと多くの構成を試しましたが、何も機能しないか、何か間違ったことをしているように見えます。
私はスネークゲームを開発しています。ユーザーは蛇の頭を一定の速度で前方に動かし、ユーザーはそれを時計回りまたは反時計回りに回すことができます。残りのすべてのヘビの破片は、頭をたどる必要があります。それらは、少し前に頭があったのとまったく同じパスを移動する必要があります。
このゲームではピン ジョイントが答えになると思います。アンカー ポイントは要素間の正確な中心にあります。
残念ながら、結果は完璧ではありません。構造は完全な円になるはずですが、そうではありません。コードと、現在の効果を示す gif を添付します。望ましい効果を得るために、ここで物理的な身体や関節のどの特性を適用する必要があるかを提案するのに十分な経験がある人はいますか?
私のコード:
ios - SKPhysicsJointFixed が 2 つのノードを結合していません
私は背中の手術から回復している間、Swift を独学しています。Swift を学んでいる間、みんなの助けは素晴らしいものでした。これが非常に単純に見える場合は申し訳ありませんが、次の人に役立つかもしれないと思います.
固定ジョイントに関する Apple ドキュメントを読んだことがありますが、これを機能させるのに苦労していました。 ジョイントは存在しますが、2 つが一緒にロックされていないことがわかります。
これは簡単な修正のように思えますが (そしてそうです)、これが誰かの助けになることを願っています。ジョイントを追加する場合、ドキュメントには次のように表示されます。 joint( withBodyA :bodyB:anchor:) これを機能させるには、「withBodyA」ボディとして結合するスプライトを入力する必要があります。
ios - SpriteKit に弾性ロープを実装する
画面の中央に弾性ロープが固定され、ロープのもう一方の端にボールがリンクされている単純なゲームに取り組んでいます。画面上で指を動かすとボールを動かすことができ、ボールを下に引っ張ることでボールを上に飛ばすことができるというアイデアです。
これまでの私のコードは次のようになります。
ロープは実際のロープとほぼ同じように動作しますが、伸縮性はまったくありません。ボールを好きなだけ引っ張ることはできますが、ロープ ノードがデフォルトの状態に戻るのが非常に遅いため、ボールを振り回すことはできません。
SKPhysicsJointSpring
代わりに使用してみSKPhysicsJointPin
ましたが、ほとんど同じように動作します。助言がありますか?
swift - オブジェクトがビューの外に移動すると、物理ジョイントが機能しなくなるのはなぜですか?
オブジェクトとのジョイントがある建設用クレーンがあります。クレーンが静止している場合、ジョイントは正常に機能します。
しかし、クレーンが左から右に移動する機能を追加しました。クレーンがオブジェクトと一緒にビューを離れようとすると、オブジェクトは画面の端にぶつかり、クレーンが動き続ける間スタックします。クレーンがビューに戻った後もジョイントが機能しなくなります。
これが画像です。上部の黄色い線は、フックが永遠にたどる経路を表しています。左から右に進みます。引っかかっているのは、青い四角形の周りにある金のブロックです。それはもともとクレーンの灰色のフックに接続されていたブロックです。しかし、フックがビューの右側に移動すると、金のブロックが画面の端にぶつかり、そこに永遠にとどまります。
私にとって意味をなさないのは、ビューの端のカテゴリ ビット マスクが 0 であるのに、金のブロックが 64 であるということです。他のレベルでは、金のブロックが端と衝突することはありません。しかし、ここでクレーンが端に移動すると、金ブロックが端に衝突して引っかかってしまいます。ご覧のとおり、関節は水色の物理線に基づいてまだ存在しています。
これは、シーンから呼び出されて構成されているジョイントのコードです。私が言ったように、フックが固定されている場合、ジョイントは正常に機能します。
これは、ブロックにジョイントを追加するクレーンのフック クラスのコードです。
金ブロックの設定は、シーン エディターから 64 のカテゴリ マスクに割り当てられます。金ブロックをテストしましたが、エッジと衝突しません。移動中にエッジに衝突する理由がわかりません。