2011-08-03 9 views
1

私はbox2dのための情報のトンを失っており、それはポートです。 しかし、私はどこでも情報を得ることができない非常に簡単な質問があります。Box2d - actionscript、java、andengine - 身体の位置

体位を正しく計算する方法。私はスクリーン上にスプライトを配置しているとしましょう(10,20)。 なぜこれを計算するbox2dのすべてのチュートリアルですか?

例: - beetwen worldとscreenを計算する関数coordPixelToWorldとcoordWorldToPixelを使用して(processing.orgから)処理します。これは少しコンパイルされた関数です。 - andengineは、beetwen worldとscreenを変換するための同様の機能を持っています。 - actionscript - ここで私はなぜすべてのチュートリアルが画面座標を取得し、スケール関数で分けているのか分かりません。

上記のすべてに1つの共通点があるので、私はこの質問をします。0,0の画面座標が左上隅にあります。 box2dはすべてのポートで異なると書かれていますか?

私は説明に感謝します。

更新

私はBOX2D ActionScriptを使用して非常に大きな問題を持っていません。私の問題は、体の位置を(0、0)に設定しているときに、ウィンドウの左上隅に短い単語で表示される理由です。ボディの位置を(0、0)に設定すると、他のbox2dポート(processing、jbox2d、およびenginebox2d拡張)ではウィンドウの中央に表示されます。私はピクセルあたりのルールなどを知っています。

答えて

0

actionscriptでは、DisplayObjectの中心は通常左上ですが、Box2Dボディの中心は重心と一致します(実際の中央、シェイプの中央左上ではありません)。 )。また、Box2D単位は正確にピクセルではありませんが、2つの間で簡単に変換することができます。

私はBox2DFlashマニュアル、UserDataをUnits上と特に一部を見てみたお勧めします。理想的には、Box2Dの頭をもっと良くするために、マニュアル全体を読んでほしいでしょう。

あなたが欲張りに興味がないなら、世界建設キットを試してみてください。 Box2Dの世界を簡単に設定することができるはずです。

Box2D WCK

1

変化の理由は、その形態の全てにおいてBOX2Dは、測定の単位としてメートルを使用することです。この理由は、実際のオブジェクトのシミュレーションを意図しているからです。

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

したがって、すべてのトゥルーリアが変換関数を持つ理由は、Box2Dがメートルを使用し、コンピュータディスプレイがピクセルを使用するからです。

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

関連する問題