如何让我的游戏在各种分辨率的不同设备上运行?

时间:2013-07-06 04:13:04

标签: andengine

我正在开发一款480 * 800分辨率屏幕的游戏,但现在我想在所有其他屏幕上运行它我试图在7“屏幕上运行,但我的背景图像甚至精灵位置都不正常。可以任何人请向我推荐一些有关如何使我的游戏与不同屏幕分辨率兼容的示例。

我使用了下面的代码但没有用。我已经看到某处使用FillResolutionPolicy()以及下面的代码andengine自动设置不同的屏幕,但我没有发现任何变化,所以请帮我解决。

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

2 个答案:

答案 0 :(得分:0)

FillResolutionPolicy()仅适用于左/右或上/下的黑条纹,具体取决于屏幕宽高比。请参阅andengine论坛中的this post,了解解决方案政策。

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

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

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

答案 1 :(得分:0)

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

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

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

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