1

すべてのデバイスのスプライト サイズを設定するには? 私はこれをスプライトに使用しています:

    final Display display = getWindowManager().getDefaultDisplay();
    CAMERA_WIDTH = display.getWidth();
    CAMERA_HEIGHT = display.getHeight();
    Log.e(Integer.toString(CAMERA_WIDTH), Integer.toString(CAMERA_HEIGHT));
    camera = new BoundCamera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);

    return new EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED,
            new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), camera);




            facebook = BitmapTextureAtlasTextureRegionFactory.createFromAsset(
            this.mBitmapTextureAtlas, this, "facebook.png", 0, 0);


             mHardware1[active] = new Sprite(pX, pY, facebook,
                this.getVertexBufferObjectManager());

しかし、画面が小さいデバイスでゲームを実行すると、スプライトのサイズは変わりません。これを克服する方法は?

4

3 に答える 3

0

スプライト サイズで「dp」単位を使用してみてください。「px」を使用している場合、他のデバイスではスケーリングされません。

詳細については、このリンクをお読みください:)

于 2013-06-03T05:59:43.233 に答える
0

コメントで@Siddharthが与えた答えは正しいです。AndEngine では、スプライトを自分で画面サイズに合わせてスケーリングすることは想定されていません。代わりに、組み込みの AndEngine 機能を使用して、それに応じてシーン全体をスケーリングする必要があります。

@Override
public EngineOptions onCreateEngineOptions() {
    final Camera camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
    camera.setCenter(0, 0);

    return new EngineOptions(true, ScreenOrientation.LANDSCAPE_SENSOR, new RatioResolutionPolicy(.CAMERA_WIDTH, CAMERA_HEIGHT), camera);
}

と を 1280x720に設定CAMERA_WIDTHCAMERA_HEIGHT、スプライトのサイズが 640x360 の場合、AndEngine は任意の画面上のスプライトを含むシーン全体を 1280x720 に拡大または縮小します。スプライトは常に画面の 4 分の 1 を占めます。

于 2013-06-05T03:25:55.623 に答える
0

交換

 new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT)

これとともに

new FillResolutionPolicy()

FillResolutionPolicy を使用すると、1 つの次元で作業するだけで済み、すべてのデバイスのサイズが自動的に変更されます

于 2013-06-06T18:54:35.567 に答える