WP7 XNA游戏:如何适应不同的手机分辨率?

时间:2012-04-24 12:43:20

标签: windows-phone-7 xna

我创造了一款针对800 x 480分辨率的游戏,但有兴趣让它适应其他WP7分辨率。另外,我听说游戏可以通过Mono和ExEn移植到iPhone和Android上,开启了大量的其他屏幕分辨率。

处理这个问题的正确方法是什么?我想让游戏足够智能,以检测屏幕大小并改变资产,使其看起来尽可能接近原始状态并播放相同的内容。

这是一款2D游戏,我认为理想的选择是为所有分辨率设置单独的图像,但是为了面向未来,这不会起作用。我想过有一个800 x 480的基线,在开始时检测尺寸,并改变我所有实体的边界以进行缩放,然后简单地将纹理绘制到那些目标。这将允许我正确地进行碰撞检测以及缩放纹理,但可能有更好的方法。

无论如何,我希望我已经清楚地解释了这个问题。如果没有,我会在评论结束后编辑问题。

感谢您的意见。

2 个答案:

答案 0 :(得分:3)

为了让Windows Phone可能支持多种分辨率(或寻找此答案来编写真正的多分辨率引擎)的人们的利益,我就是这样做的。

我枚举/检查可用的分辨率,并为我已经知道的宽高比的分辨率设置正交投影。为此,我硬编码了我测试过我的游戏的宽高比表以及每个宽高比的“参考”宽度/高度。然后我查看当前请求的分辨率,找到它的纵横比,并查看我的表格中最接近的匹配宽高比并设置正交投影(居中 - 如果高度匹配但宽度不匹配,反之亦然,字母-boxing自动发生)和视口相应。

例如:我为qHD(960x540),WXGA(1280x720)和FHD(1920x1080)设置了1280x720的正投影,因为它们都具有相同的宽高比。

在方面1.5的SVGA和DVGA(960x640)显示器上,我会设置SVGA 800x600分辨率,所以一切看起来都不错。

上述方法可确保如果您为主要目标设备使用的宽高比设计资源,他们将不会看到任何挤压。 请注意,此方法 NOT 用于确定资产的实际分辨率。

答案 1 :(得分:-1)

目前,WP仅支持800 x 480分辨率。将来,当允许不同的分辨率时,人们一直在谈论自动缩放。到目前为止还没有任何结果出来,我建议你放轻松。

编辑:感谢您的提醒..重新阅读帖子。是Mono允许您为Android和iOS编写,并且您可以分享大量代码http://xamarin.com/以获取更多信息。

我们的想法是拥有一个公共库(引擎等),然后优化UI以适应不同的平台。

相关问题