問題タブ [box2d]
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.
objective-c - box2dで衝突するオブジェクトの跳ね返りを取り除く方法は?
box2d
2 つのオブジェクトが衝突したときにオブジェクトを削除しようとしています。
2 つのオブジェクトが衝突すると、一方のオブジェクトが他方のオブジェクトに跳ね返ります。他のオブジェクトは削除されますが、バウンスではなく通過したように見せたいです。
体の定義タイプを に設定していb2_staticBody
ます。
iphone - box2dボディ内でスプライトの位置を設定するには?
基本的に、体には 2 つのポリゴンがあります。userData にスプライトを追加すると、テクスチャの位置が希望の位置になりません。私がやりたいのは、ボディ内のテクスチャの位置を調整することです。これを設定しているコードサンプルは次のとおりです。
xna - Box2dはXboxで動作しますか?
XNAでゲームを開発しています。Xboxと互換性があるといいですね。Box2dはXboxで動作しますか?私が使用しているサードパーティのライブラリを含める方法はありますか?
actionscript-3 - 凹多角形を凸多角形に分割する
凸多角形のみをサポートするゲーム物理ライブラリ (Box2D) を使用しています。ただ、レベルビルダーはそれを気にせずに凹面ポリゴンだけ指定できるようにしてほしいです。
では、凹面多角形を凸面多角形 (またはすべての三角形) に自動的に分解するにはどうすればよいでしょうか。速度はクールですが、実装の容易さがより重要です。分解はゲームの初期化時にのみ行われます。
(私の言語は Flash/ActionScript 3 ですが、問題ありません)
c# - 衝突が発生したかどうかを Box2d に尋ねる
Box2dx (C# に移植、XNA 用に最適化) を使用しています。衝突の解決を処理しますが、2 つのオブジェクトが現在衝突しているかどうかはどうすればわかりますか?
これは私が書こうとしている関数です:
collider1.Model.Body
は Box2dでBody
、collider1.Model.BodyDef
は Box2dBodyDef
です。(もちろん も同じcollider2
です。)
更新:連絡先リスナーのように見えるか、これが役立つ可能性があります:
なぜGetFixtureList()
1 つのフィクスチャを返すのですか?
c# - Box2dx:World.QueryAABBの使用法?
Box2dxとC#/XNAを使用しています。何かと衝突することなく、特定のポイントにボディが存在できるかどうかを判断する関数を作成しようとしています。
これを行うためのより良い方法はありますか?どのように機能World.QueryAABB
することになっていますか?
これは以前の試みです。壊れています; 常にfalseを返します。
lua - 物理学による宇宙船の 2 次元軌道計画
宇宙に船がある 2D ゲームを実装しています。
そのために、Box2D を Lua でラップする LÖVE を使用しています。しかし、私の質問は、私よりも物理学をよく理解している人なら誰でも答えることができると信じています。そのため、疑似コードが回答として受け入れられます。
私の問題は、2D 物理学が有効な世界で宇宙船を適切に動かす方法がわからないことです。より具体的には:
大量の船がm
初期位置にあり{x, y}
ます。の初期速度ベクトルを持ちます{vx, vy}
( にすることができます{0,0}
)。
目標は のポイントです{xo,yo}
。{vxo, vyo}
船は、最短の軌道をたどって、の速度 (またはそれに近い速度) を持つ目標に到達する必要があります。
頻繁に呼び出される関数がありますupdate(dt)
(つまり、1 秒あたり 30 回)。この機能では、船はそれ自体に「インパルス」を適用することで、その位置と軌道を変更できます。インパルスの大きさは 2 進数です。特定の方向に適用することも、まったく適用しないこともできます)。コードでは、次のようになります。
1つ目???
は、場合によっては(おそらく)「衝動に駆られず」、船を「漂流」させた方がよいことを示すためのものです。2 番目???
の部分は、与えられた dt で衝撃角を計算する方法で構成されます。
私たちは宇宙にいるので、空気摩擦などは無視できます。
とてもいいことですが、これをコーディングしてくれる人を探しているわけではありません。私の問題が明確に理解できるように、コードをそこに置きました。
私が必要としているのは戦略、つまりこれを攻撃する方法です。私は基本的な物理学をいくつか知っていますが、専門家ではありません。たとえば、この問題には名前がありますか? そのようなこと。
どうもありがとう。
編集: ベータ版はこれに対する有効な戦略を提供し、Judge は親切にもそれを LÖVE のコメントで直接実装しました。
EDIT2:さらにグーグルで調べた後、 openSteerも見つかりました。それは C++ 上にありますが、私がふりをしたことを行います。この質問にたどり着く人にはおそらく役立つでしょう。
physics - Box2d の摩擦
トップダウン ゲームに Box2d を使用しています。「地面」は一連のタイルであり、各タイルはセンサー形状を持つ静的な物体です。オブジェクトが実際には地面と「衝突」していなくても、摩擦を有効にすることはできますか?
Box2d でこれができない場合は、現在オブジェクトを動かしている力を検出し、それに反対の力を適用することで、独自の実装を試みることを検討しましたが、その力を検出する方法がよくわかりません。
c# - Box2dx: レイキャスティングで無視するフィクスチャを指定しますか?
私のゲーム ワールドの誰もが、センサー シェイプが取り付けられたフィクスチャを持っています。レイキャストすると、これらのフィクスチャにヒットしますが、少なくとも 1 つの形状がセンサーではないフィクスチャにのみヒットしたいと考えています。これは可能ですか?
Box2dx - C# ポートを使用しています。
また、コールバックは何をしますか?
これは、私が呼び出しているレイキャスト関数です。ドキュメントには、コールバックを使用して取得する形状の数を指定できると書かれていますが、その方法がわかりません。
c# - Box2d: 可能な最大線速度?
Box2d を構成して、任意のボディに対してある種の最大速度を設定したと思いますが、よくわかりません。のような衝動を加える(100000000, 100000000)
と、体は と同じ速さで動きます(100, 100)
が、それほど速くはありません。
Box2d XNA C# ポートを使用しています。
私のゲームはトップダウンの 2D です。
関連する可能性のあるコードを次に示します。
インパルスを適用するコードの例を次に示します。
Constants.PLAYER_IMPULSE_CONSTANT
が から のいずれか1000f
にある場合1000000000f
、プレイヤーは最大で まで移動でき(-120, -120)
ます(120, 120)
。のように定数が小さい場合、1f
プレイヤーはよりゆっくりと動きます。
このコードは、ゲーム世界のすべての物理を設定するために使用されます。
それはおそらく線形減衰でしょうか?10.0f
からに変更しましたが0
、効果はありませんでした。
更新:線形ダンピングの奇妙さ: 上記の適用インパルス法で動かされた体について、これらの観察を行いました:
50f
と の間に線形減衰の感度範囲があるのはなぜ60f
ですか?