我创建了一款针对 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 分辨率,这样一切看起来都不错。
上述方法可确保,如果您根据主要目标设备使用的宽高比设计资源,它们不会出现任何挤压。注意这个方法是NOT用于确定您资产的实际分辨率。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)