我正在开发一个使用andeninge的游戏。我固定了摄像头的宽度和高度
private static final int CAMERA_WIDTH = 480;
private static final int CAMERA_HEIGHT = 320;
@Override
public Engine onLoadEngine(){
this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
final Engine engine = new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, new FillResolutionPolicy(), this.mCamera).setNeedsSound(true));
return engine;
}
在游戏中,建筑物大小的图像是(1020x400)。当camera_widhth和camera_height为480,320时,建筑视图正确。如何运行我的游戏在不同的屏幕分辨率下使用和引擎(使用相同的建筑图像大小).
否则我需要更改所有屏幕分辨率的建筑图像?
发布于 2011-09-24 09:29:44
你可以像现在一样使用固定摄像头,如果你想的话。OpenGL ES将缩放视图以填充设备屏幕。这可能是最简单的解决方案,但当游戏在宽高比不同于1.5 (480/320)的设备上运行时,它会改变宽高比或在屏幕的下方/上方或左侧/右侧留下黑框。我认为目前大多数设备的宽高比都是1.66 (800/480)。
其他选项是使用:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics)
CAMERA_WIDTH = metrics.widthPixels()
CAMERA_HEIGHT = metrics.heightPixels()
设置相机大小,然后使用像素大小和屏幕像素密度(dpi)的组合(请参见http://developer.android.com/reference/android/util/DisplayMetrics.html)和使用精灵的.setScale来相应地缩放它们。
发布于 2011-10-03 00:21:18
引擎游戏会自动扩展到设备上--所以...
如果你设置你的CAMERA_WIDTH/HEIGHT为480x320,有人在800x480的手机上运行它,你的游戏将会扩展到720x480 (1.5x),并且会有一个80px的边距(顶部、底部、左侧、右侧或它们之间的分割取决于你的视图的重力)。
你必须决定大多数使用你的应用程序的人将使用什么-我倾向于以800x480为目标,并忍受一些缩小到较小的屏幕-而不是相反的方式…
发布于 2013-04-02 14:25:20
您可以使用此源:
@Override
public Engine onLoadEngine() {
final Display defaultDisplay = getWindow().getWindowManager().getDefaultDisplay();
CAMERA_WIDTH = defaultDisplay.getWidth();
CAMERA_HEIGHT = defaultDisplay.getHeight();
this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
return new Engine(new EngineOptions(true, ScreenOrientation.PORTRAIT, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.mCamera));
}
https://stackoverflow.com/questions/7537771
复制相似问题