1

box2d とそのポートに関する大量の情報を失ってしまいました。しかし、私はどこにも情報を得ることができない非常に単純な質問があります。

体の位置を正しく計算する方法。画面上の位置 (10, 20) にスプライトがあるとします。box2d コンピューティングのすべてのチュートリアルがこれと異なるのはなぜですか?

例: - 関数 coordPixelToWorld および coordWorldToPixel を使用して世界と画面を計算する処理 (processing.org から) - 少し複雑な関数です。- andengine は、ワールドとスクリーンの間で変換するための同様の機能を持っています。- actionscript - ここで理由はわかりませんが、すべてのチュートリアルで画面座標を取得し、それをスケール関数で分割しています。

上記のすべてに 1 つの共通点があるため、この質問をします。0,0 の画面座標は左上隅にあります。box2d の書き方はポートごとに違うのですか?

解説よろしくお願いします。

アップデート

box2d actionscript に関して大きな問題はありません。私の問題は、ボディの位置を (0, 0) に設定すると、ウィンドウの左上隅に短い言葉で表示されるのはなぜですか。他の box2d ポート (処理、jbox2d、およびエンジン box2d 拡張) では、ボディの位置を (0, 0) に設定すると、ウィンドウの中央に表示されます。メートルあたりのピクセルなどに関するルールを知っています。

4

2 に答える 2

1

この違いの理由は、Box2D はすべての形式でメートルを測定単位として使用するためです。これは、実世界のオブジェクトのシミュレーションを目的としているためです。

Box2D は、視覚的な表現を持つ必要はまったくありません。box2D シミュレーションを作成する場合、box2D のグラフィック レンダリングでどのレベルの詳細を表示するかは、開発者次第です。したがって、メートルからピクセルへの変換を表す乗数があります。Box2D フラッシュの場合、この比率のデフォルトは 30px:1m です。

したがって、すべてのチュートリアルに変換機能がある理由は、Box2D がメートルを使用し、コンピューターのディスプレイがピクセルを使用するためです。

メートルをピクセルに、ピクセルをメートルに変換します。

于 2011-08-05T16:46:18.023 に答える
0

アクションスクリプトでは、DisplayObjectの中心は通常左上ですが、Box2Dボディの中心は重心中心(左上隅ではなく、形状の実際の中央)と一致します。また、Box2Dユニットは正確にはピクセルではありませんが、2つの間で簡単に変換できます。

Box2DFlashマニュアル、特にUnitsUserDataの部分を参照することをお勧めします。理想的には、マニュアル全体を読んで、Box2Dに頭を悩ませることをお勧めします。これにより、より多くの制御が可能になります。

核心に興味がない場合は、WorldConstructionKitを試してみてください。Box2Dワールドのセットアップが簡単になるはずです。

Box2D WCK

于 2011-08-03T10:36:44.910 に答える