簡単に言うと、デバイスには2つの主要な比率(5:3と4:3)があると思います。他のほとんどは4:3よりも5:3に近いです(したがって、5:3がデフォルトである必要があります)。
すべての画面サイズを経由せずに、可能な限り最高のグラフィックスをサポートしたかったのです。だから私はそれらの2つの比率を取りました。
今、私はこのようにセットアップを行いました:
定義
String fileFolderForRatio = "";
int CAMERA_WIDTH = 1280;
int CAMERA_HEIGHT = 768;
@Override
public EngineOptions onCreateEngineOptions() {
instance = this;
// getting the device's screen size
Point screenSize = getScreenSizeByRatio();
CAMERA_WIDTH = screenSize.x;
CAMERA_HEIGHT = screenSize.y;
mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
final EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.LANDSCAPE_SENSOR,
new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), mCamera);
engineOptions.getAudioOptions().setNeedsSound(true);
engineOptions.getAudioOptions().setNeedsMusic(true);
return engineOptions;
}
および関数(幅と高さのチェックに注意してください。AndEngineが逆に検出する場合があります)
public Point getScreenSizeByRatio()
{
final Display display = getWindowManager().getDefaultDisplay();
double sw = display.getWidth();
double sh = display.getHeight();
double ratio = sw / sh;
if (sw < sh) ratio = sh/sw;
Point screenPoints = new Point();
if (ratio > 1.3 && ratio < 1.4)
{
fileFolderForRatio = "1024x768";
screenPoints.x = 1024;
screenPoints.y = 768;
} else
{
fileFolderForRatio = "1280x768";
screenPoints.x = 1280;
screenPoints.y = 768;
}
Debug.e("RATIO", fileFolderForRatio);
return screenPoints;
}
グラフィック(その画面サイズに最適化)を1024x768フォルダーと1280x768フォルダーに配置します。
このようにして、半静的な画面サイズになります。AndEngineが残りのサイズを変更します。
(スプライトの画面配置については、2つの比率では同じではないため、確認する必要があります。ただし、Ios開発者からはそれほど難しくありません(iPadとiPhone)。
それが役に立てば幸い