1

如何为所有设备设置 Sprite 大小?我将它用于精灵:

    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

代替

 new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT)

有了这个

new FillResolutionPolicy()

使用 FillResolutionPolicy,您只需要在一个维度上工作,它会自动调整所有设备的大小

于 2013-06-06T18:54:35.567 回答
0

尝试在您的精灵大小上使用“dp”单位。如果您使用“px”,它将无法在其他设备上扩展。

请阅读此链接以获取更多详细信息:)

于 2013-06-03T05:59:43.233 回答
0

@Siddharth 在评论中给出的答案是正确的。在 AndEngine 中,您不应该自己缩放 Sprite 以适应屏幕尺寸。相反,您应该使用内置的 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);
}

现在,当您将CAMERA_WIDTHand CAMERA_HEIGHT, 设置为 1280x720 并且您的 Sprite 大小为 640x360 时,AndEngine 会将整个场景放大或缩小,包括您在任何屏幕上的 Sprite 到 1280x720。您的 Sprite 将始终占据屏幕的四分之一。

于 2013-06-05T03:25:55.623 回答