box2Dを使用して上面図の物理演算を実装する


7

どのようにしてトップビューの物理ゲームをbox2Dで実行できますか?私の考えの1つは、オブジェクトの線形速度を手動で設定するか、オブジェクトが異なるサーフェス上を移動するときに線形および角度の減衰を変更することです。たとえば、オブジェクトが濡れた表面上にある場合、線形減衰が少なくなり、粗い表面上にある場合、減衰が大きくなります。そして、オブジェクトがエッジを超えたAABBかどうかを確認するには、を使用して、オブジェクトがまだ内部にあるかどうかを確認するか、手動で確認するobject.x > boundary.xなどします。もっと良い方法はありますか?

回答:


5

見てb2FrictionJointシミュレートトップダウン「粗面」へ。モーションダンピングは、それほどリアルに見えません。

基本的には、摩擦ジョイントを使用してオブジェクトを何にでも取り付けて機能させることができます。(私はそれらすべてを床のオブジェクトに取り付けますが、それがどれほど大きいか、どこにあるかは関係ありません。)


3

単に重力をゼロに設定すると、物理シミュレーションはトップダウンゲームに適しています。


2
重力を無効にしても、Box2Dはトップダウンの物理シミュレーションになりません。地面の摩擦をどのようにシミュレートしますか?泥の中を走る車はどうですか?
bummzack

泥の部分のセンサーを使って、車の密度や摩擦などを変えることでそれを実現します。確かにそれはそれらの機能の意図された目的ではないので、意味的にハッキーですが、Box2Dにすべての作業を継続させる簡単な方法です。
11

1

Box2Dは2次元空間で動作するように設計されています。2Dプラットフォーマーゲームでは、オブジェクトを基本XYで記述できます。

--------- X
|
|
|
Y

このゲームには奥行きがありませんね。この同じゲームを平面図で表示したい場合は、奥行きを表すために、3つ目の新しい次元Zが必要です。何が起こるのですか?これで3次元になりますが、Box2Dは2次元で設計されています。

ゲームは視覚的に2次元にすることができますが、この場合のロジックは3次元です。( 上面図 )。

別の3D物理ライブラリを使用するか、自分で実装する方が良いと思います。

私はBox2Dを使用したトップビューゲームを見たことがありません。誰かが知っていれば、とても感謝しています。


2
「ロジック」は必ずしも3Dであることに同意しません。2Dゲームの場合、Zは通常、視覚的な目的でオブジェクトが描画される順序にすぎません。これをシミュレートしたり、物理学に関連付けたりする必要はまったくありません。
Brian Ortiz

「この場合」には論理的な3次元が必要だと言った。あなたが言ったZは新しい次元ではなく、スプライトを描画する必要がある相対的な順序を記述するためのフォームにすぎない。(ペインタアルゴリズム)
momboco

Box2Dでは、Y座標は高度(および重力が適用される高度)です。トップビューのゲームが必要な場合は、これを変更する方法がわかりません。重力を使用すると、次元が失われ、3番目の次元が必要になるためです。
momboco、2011年

3
Box2Dを使用するトップダウンゲームは次のとおりです。sevengames.com/ nitro - racers。私はそれをプログラムしたので偶然これを知りました:P車両の動きは少しハックで、回転を手動で設定し、草の摩擦も手動で行われますが、残り(加速、衝突、跳ね返り、環境との衝突) )は純粋なBox2Dです。
Bart van Heukelom、2011年

どうもありがとう。質問があります。環境との衝突は、車が止まることを生み出すだけです。Box2Dでリバウンドを達成できると思いますか?芝生の摩擦は、Box2Dの制限により手動で実装されていますか?トップビューでゲームを開発したとき、高度にzの3Dロジックを使用して、この値をスケール(たとえば、ピストルから発射されるケーシング)に関連付けました。Box2Dでは、これに対処する方法がわかりません。
momboco、2011年

0

jhockingが言ったように、側面図または上面図にBox2Dを使用するのと同じです。

重力を無効にして、box2Dマニュアルのコリジョンフィルタリングを使用して深度を操作します。

重力がないため、オブジェクトを押すと通常よりも「軽く」なります。質量と力で遊んで、同等の結果を出します。

あなたがダンピングと呼んでいるのは、Box2Dの一般的な摩擦であるべきだと思います。レベルの限界をチェックするために、センサーがあります。何かが過ぎ去ったときに教えてくれる形:)


2
「重力がないため、オブジェクトを押すと、オブジェクトは通常よりも「軽く」なります」:なぜですか?重力がなくなったからといって彼らの質量は変わっていません。
alxx 2011

1
彼らの質量は変わりません。ただし、重力によってそれらが地面に固定されることはなくなります。したがって、それらが地面に触れていないときは、動きやすくなります。
AttackingHobo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.