And Engine を使用してゲームを作成していますが、すべてのデバイスで動作する一般的な方法で作成しようとすると、問題が発生します...
すべての画面で機能する背景スプライトの特定の位置にスプライトを設定する必要があります...背景画面のサイズはデバイスの寸法と同じです..
Glaxy S3 haの寸法720 * 1280と言うピクセルを使用しようとしました
そして、それに従ってスプライトを場所(584,608)に設定しました
と私の HTC experia ha 寸法(320,480)
だから私はそれを(244,172)に設定する必要があります....
スプライトの位置を一般的な方法で設定するために、次のすべての方法を試しましたが、うまくいかない場合...
私はそれを可能にするいくつかの式を作るために次のことをたくさん試しましたが、何も見つけることができません..アドバイスしてください
final Display display = getWindowManager().getDefaultDisplay();
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
metrics.density;
metrics.densityDpi;
metrics.heightPixels);
metrics.scaledDensity);
metrics.widthPixels);
metrics.xdpi);
metrics.ydpi);
Point point = getDisplaySize(display);
CAMERA_WIDTH = point.x;
CAMERA_HEIGHT = point.y;
DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm);
double x = Math.pow(dm.widthPixels/dm.xdpi,2);
double y = Math.pow(dm.heightPixels/dm.ydpi,2);
double screenInches = Math.sqrt(x+y);
int widthPix = (int) Math.ceil(dm.widthPixels * (dm.densityDpi / 160.0));
//CAMERA_WIDTH = display.getWidth();
//CAMERA_HEIGHT = display.getHeight();
問題は少し複雑です..上で述べたように、ピクセルを使用しようとしましたが、Glaxy S3 ha *dimensions 720*1280 とします。必要なスプライトの位置は (584,608) なので、( CAMERA_WIDTH/1.233f,CAMERA_HEIGHT/2.112f) のように設定します。 *
しかし、 HTC experia の寸法は*320*480 なので、( CAMERA_WIDTH/1.233f,CAMERA_HEIGHT/2.112f) に基づく必要な位置は (2599.5,227.27)* ですが、表示によるとこれは間違っています... (244,172)に設定するとエクスペリアの場合、完璧に機能します。... 助けてください。