所有设备的精灵大小

时间:2013-06-03 05:56:20

标签: java android andengine 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());

但是当我在屏幕较小的设备上运行游戏时,精灵大小保持不变。如何克服这个?

3 个答案:

答案 0 :(得分:0)

尝试在精灵大小上使用“dp”单位。如果您使用的是“px”,则无法在其他设备上进行缩放。

请阅读this link了解更多详情:)

答案 1 :(得分:0)

@Siddharth在评论中给出的答案是正确的。在AndEngine中,您不应该自己调整Sprites以适应屏幕尺寸。相反,您应该使用内置的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_WIDTHCAMERA_HEIGHT设置为1280x720并且您的精灵大小为640x360时,AndEngine会将整个场景向上或向下缩放,包括任何屏幕上的Sprite到1280x720。你的精灵总是占据屏幕的四分之一。

答案 2 :(得分:0)

替换

 new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT)

用这个

new FillResolutionPolicy()

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