【问题标题】:WP7 XNA game: how to adapt to different phone resolutions?WP7 XNA游戏:如何适应不同的手机分辨率?
【发布时间】:2012-04-24 12:43:20
【问题描述】:

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

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

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

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

感谢您的意见。

【问题讨论】:

  • Windows Phone 7 有一个单一的 800x480 分辨率,所以你已经解决了这个问题!

标签: windows-phone-7 xna


【解决方案1】:

为了那些在 Windows Phone 可能支持多种分辨率(或寻找这个答案以编写真正的多分辨率引擎)时登陆这里的人们的利益,我就是这样做的。

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

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

在纵横比为 1.5 的 SVGA 和 DVGA (960x640) 显示器上,我会设置 SVGA 800x600 分辨率,这样一切看起来都正常。

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 他正在考虑移植游戏,因此 iOS 和 Android 分辨率相关。
    猜你喜欢
    • 2012-11-20
    • 2019-10-17
    • 2013-09-09
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多