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



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

处理这个问题的正确方法是什么?我想让游戏足够智能,以检测屏幕尺寸并更改资产,使其看起来尽可能接近原始资产并玩相同。

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

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

感谢您的投入。

为了那些

在Windows Phone可能支持多种分辨率(或寻找这个答案来编写真正的多分辨率引擎)时来到这里的人的利益,这就是我的做法。

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

例如:我为 qHD (960x540)、WXGA (1280x720) 和 FHD (1920x1080) 设置了 1280x720 的正射投影,因为它们三者具有相同的纵横比。

在宽高比 1.5 的 SVGA 和 DVGA (960x640) 显示器上,我会设置 SVGA 800x600 分辨率,这样一切看起来都不错。

上述方法可确保,如果您根据主要目标设备使用的纵横比设计资产,它们不会看到任何挤压。请注意,此方法用于确定资产的实际分辨率。

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

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

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

最新更新