如何设置所有设备的精灵大小?我用它作为精灵:
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());
但是当我在屏幕较小的设备上运行游戏时,精灵大小保持不变。如何克服这个?
答案 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_WIDTH
和CAMERA_HEIGHT
设置为1280x720并且您的精灵大小为640x360时,AndEngine会将整个场景向上或向下缩放,包括任何屏幕上的Sprite到1280x720。你的精灵总是占据屏幕的四分之一。
答案 2 :(得分:0)
替换
new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT)
用这个
new FillResolutionPolicy()
使用FillResolutionPolicy,您只需要在一个维度上工作,并自动为所有设备调整大小