2

Androidでbox2dエンジンを使用するゲームを開発しています。320X480 の解像度で定義された xml から出てくる定義によって物理世界を作成します。

box2d では、1 単位が 30 ピクセルであると考えています。問題は、解像度ごとに個別の xml を定義して、すべての画面でこれを適切にスケーリングする以外に、他のオプションがあるかどうかです。

ディスプレイ メトリックから画面密度を取得し、box2d が使用するスケールを調整しようとしましたが、物理世界は同じようには見えません。

誰かがこの状況に遭遇して解決しましたか?

前もって感謝します。

4

2 に答える 2

2

PTM_RATIO などを使用してメートルに変換された表示サイズからワールド サイズを定義します。

WindowManager w = getWindowManager();
Display d = w.getDefaultDisplay();
int width = d.getWidth();
int height = d.getHeight();

mWorldWidth = (float)(width / PTM_RATIO);
mWorldHeight = (float)(height / PTM_RATIO);

次に、mWorldHeight 値と mWorldWidth 値を使用してバウンディング シェイプを作成します。これにより、常に使用可能な画面サイズのスケールで作業できます。

于 2011-03-23T13:48:19.660 に答える
0

解像度に関係なく、画面に同じ数のゲーム内ユニットが収まるように、描画を再スケーリングする方法を見つける必要があります。残念ながら、Android APIがわからないため、詳細についてはサポートできません。

于 2010-06-29T15:35:06.877 に答える