問題タブ [revolute-joints]
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.
box2d-iphone - ボディを2つの側面から異なる静的ボディに結合することは可能ですか?
上記のコードは、静的および動的なボディを作成し、それらをrevolutejointで結合します。これが私が得るものです:
次に、次の行を追加して、静的な円である別のボディを追加し、円と、バーのもう一方の端にある前に追加したバーを結合します。
しかし、これが私が得るものです:
円を追加した後、バーを移動できません。修正されました。しかし、私はそれがサークルに加わることを期待しています。アンカーポイントを別の位置に変更しようとしましたが、役に立ちません。私は何が欠けていますか?おそらく、動的ボディを複数の静的ボディに結合することはできません。
box2d - 一定以上の力が加わると関節破壊する
2 つのダイナミック ボディが回転ジョイントで一緒に接続されています。両方のボディは、反対側の静的ボディにも接続されています。一定量以上の力が加えられたとき、つまりジョイントが抵抗できる以上の質量があるときに、2 つのダイナミック ボディ間のジョイントを壊す必要があります。これは Box2d でどのように行われますか? これは Box2d によって自動的に処理されないと思います。これが私が達成したいことのグラフィカルな概要です。
ios - box2d 回転ジョイント モーター速度調整は効果なし
私は、アームが回転ジョイントでボディに接続されている静止ボディ上の box2d アーム (上腕、前腕、および手) で構成される単純な box2d 構成であると思います。目的は、腕が前方に動いたときに手の中の物体を解放できるように、腕を後ろに引くことです (つまり、アンダースロー)。脇の下の動きで腕をアシストするモーターを有効にしました。
問題は、腕で有効にした制限を超えない現実的な腕の速度を有効にするパラメーター値を考え出すことができないことです。maxMotorTorque を小さい値 (たとえば、3.0 未満の任意の数値) に設定すると、アームは反時計回りに回転し、設定した制限で停止しません。モーター速度を 5.0 ~ 15000.0 ラジアン/秒の範囲に設定すると、maxMotorTorque を 4.0 に設定してもアーム速度は変化しません。maxMotorTorque を小さな値に減らすと、アームは飛び回りますが、やはり限界を超えてしまいます。
以下は、回転ジョイントを初期化するために使用するコードです。
腕の密度は 0.5、手のオブジェクトの密度は 1.0 です。これらの密度を下げると、腕をより速く動かすことができますが、やはり限界を超えてしまいます.
私が間違っていることについてのアイデアはありますか? 限界を超えずに腕を速く動かすにはどうすればよいですか?
physics - ズームすると関節が壊れる
最近スプライト キットのリハーサルをしていて、非常に奇妙な問題に遭遇しました。親ノードをズーム(スケール変更)すると、SKPhysicsJointPin で結合されたボディが徐々に離れ、結合が壊れます。画像をお見せしましょう。
これは通常の状態です。
ズームインしたときは次のとおりです。
そして、ズームアウトしたときは次のとおりです。
体を結合する方法を尋ねると、茶色の棒を青いノードの中心にある青いノードに結合します。私の問題は何ですか?
編集:最近、接合体が動的でない場合、接合部が壊れず、すべてが期待どおりに機能することがわかりました。たとえば、[SKPhysicsBody bodyWithRectangleOfSize] の代わりに [SKPhysicsBody bodyWithEdgleLoopFromRect] を使用してスプライトの物理ボディを作成しても問題ありません。しかし、体が動的である必要があります。
物理をノードにアタッチするために使用するコードは次のとおりです。もちろん、すべて動的に行われます。簡潔にするためにハードコーディングしました。
上記のコードでは、beam1 と beam2 は SKSpriteNode のサブクラスのインスタンスです。デフォルトのアンカー ポイントは (0,0.5) で、スプライトの右端のポイントとして機能する endPoint というプロパティを追加しました。
libgdx - libgdx+box2d ジョイントが重力下で正しく機能しない
box2d/libgdx を使用して静的ボディと動的ボディを接続して振り子を作成しようとしています。ディスタンス ジョイント、ロープ ジョイント、リボリュート ジョイントなど、さまざまなタイプのジョイントを試しましたが、重力下では、最初にジョイントによって拘束された後、動的ボディは常に下に逃げてしまいます。無重力状態でのみ関節が正常に機能します。私は本当にばかげたことをしているに違いないことを知っています。
PS。連絡先リスナーをまだ実装する必要があります。これを行う方法がわかりません。衝突リスナを設置すると役に立ちますか?
box2d - スプライト キットで同等の Box2D Joint.GetReactionForce
ラップされていない純粋な Box2D と Cocos2D を使用する場合、以前は GetReactionForce という美しい関数を使用してジョイントの反力を取得できました。私は最近、スプライト キットの物理演算を試し始めましたが、似たようなものが見つからないようです。私の知る限り、準備ができているものはありません。どうにかしてスプライト キットでこれを達成する方法はありますか? 物理エンジンは依然として Box2D ですが、すべての機能が利用できるわけではありません。ジョイントを形成する物体の質量、密度、速度などのプロパティを使用して実行できると思います。しかし、方法がわかりません。
animation - 「関節」を中心に回転するDirectX 9
マトリックスの生成方法がわかりません。
その写真がそれを説明していることを願っていますが、基本的には初期位置があり、メイン ジョイントを 90 度回転させ、それに続いて最後のジョイントを 90 度回転させようとしています。その後、変換を適用して最終的な行列を取得します (コードを参照)。これは、ジョイントに関連する一連のポイントに適用されます。
最後の回転が機能していないようです。次の行を入れなくても問題ありません。(足はまっすぐ下です)。明らかな何かが欠けているに違いありませんか?回転のためにこの方法で行列乗算を行うことはできませんか?
android - 狂ったように伸びるLibGDX Box2Dロープ
円とジョイントを使用して Box2d で作成したロープを使用してゲームを開発しています。ロープは弱い力でドラッグすると期待どおりに機能しますが、それ以外の場合 (力が大きい場合) は狂ったように伸びるだけで、それを修正してより安定したロープを作成する方法がわかりません。さまざまな種類のジョイント (RopeJoint、RevoluteJoint、DistanceJoint など) を試しましたが、役に立ちません。これが私のコードです:
}
スクリーンショット:
普通:
伸ばした:
この問題を解決する方法を知っている場合は、助けてください。
ありがとう、チャーリー!
java - box2d の回転ジョイント
ここのチュートリアルに従って、回転ジョイントを構築しようとしています。要するに腕。長方形の腕を正方形上の点に固定し、その周りを回転させる必要があります。力が加えられると、2 つの形状が 1 つのように動作し、アームがラグドールのようにボックスの周りを飛んでいる間、一緒に固定されると予想されます。
残念ながら、これはまったく機能していません。最初は腕がつながっていて、力を加えると 2 つの形が離れて、説明のつかない奇妙な動きをします。あたかもアンカーが不安定な位置にあるかのようです。
私は jbox2d とこのチュートリアルの多くのコードも使用しています。
(動作するかどうかを確認するために、最初のアンカーをセンターに設定しました)(openGlを使用しているため、奇妙な変換がいくつかあります)
要点は次のとおりです。