0

我正在为 480*800 分辨率屏幕开发游戏,但现在我想在所有其他屏幕上运行它我试图在 7 英寸屏幕上运行,但我的背景图像甚至精灵位置都乱了。谁能给我建议有一些关于如何使我的游戏与不同的屏幕分辨率兼容的例子。

我使用了下面的代码,但这没有用。我在某处看到通过使用FillResolutionPolicy()下面的代码andengine集自动为不同的屏幕设置,但我没有注意到任何变化,所以请帮助我解决它。

DisplayMetrics 指标 = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics)
CAMERA_WIDTH = metrics.widthPixels()
CAMERA_HEIGHT = metrics.heightPixels()
4

2 回答 2

0

FillResolutionPolicy()仅适用于您拥有左/右或上/下的黑色条纹,具体取决于屏幕纵横比。请参阅andengine 论坛中的此帖子以了解解决政策。

相机宽度/高度与设备的实际分辨率无关,因为它被投影到设备高度或设备宽度(取决于相机设置的纵横比和设备的纵横比)。DisplayMetrics 只有一点有用 - 获取屏幕密度/最大分辨率以加载依赖于 res 的精灵(例如:像更高密度,加载更大的精灵)但这不是你的问题 atm。

我测试和引擎的游戏都是独立于分辨率的,可以在不同分辨率的 4、7 或 10 英寸显示器上运行,无需任何添加/代码更改。

我认为这更像是一个编码错误,您将精灵和背景图像添加到场景中。例如,通过CAMERA_WIDTH/_HEIGHT使用依赖于 的指标和精灵位置重新计算CAMERA_WIDTH/_HEIGHT,您将精灵位置与设备分辨率混合在一起,一切看起来有点乱。也许您添加了一些代码,我可以编辑我的答案,为您指明正确的方向。

于 2013-07-08T14:02:35.627 回答
0

FillResolutionPolicy 会根据您的屏幕尺寸自动缩放所有内容。

Camera camera = new Camera(0, 0, 480, 880);
EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.PORTRAIT_FIXED, new FillResolutionPolicy(), this.camera);

这是我使用的,如果我在更大的设备上开始游戏,一切都会自动缩放。
FillResolutionPolicy 可能正是您所需要的。

(上面的代码可能不是 100% 准确,因为我现在无法访问我的实际代码)

于 2013-07-09T09:41:10.843 回答