在iPad上为视网膜缩放kha-app

时间:2017-01-03 16:31:35

标签: haxe haxelib kha

我有一个kha应用程序在iPad2(1024 / 768px)上完美运行。

当我在2048/1516的后期iPad Mini上运行相同的项目时。我的坐标都是大小的一半,这有点道理。

因此,当我将所有尺寸的物体和GFX加倍时,它将适用于iPad mini,但对于iPad2来说太大了。

我查看了一个backbuffer和一个renderTarget,如下所示: https://www.youtube.com/watch?v=OV1PTo5XSCA

khafile中还有windowSize选项,它似乎什么都不做。

Surface x和y coodinates似乎总是出现在设备的真实屏幕中。

编写独立于分辨率的应用程序的最佳方法是什么?

完美将是一种视网膜或非视网膜的方式,取决于设备,代码保持不变。

1 个答案:

答案 0 :(得分:2)

根据https://github.com/Kode/Kha/wiki/Screen-Size-and-Scaling,某些目标的自动缩放比例。如果您需要其他目标,则必须手动缩放所有内容以适应屏幕。

页面提到使用此类执行任务:https://github.com/Kode/Kha/blob/master/Sources/kha/Scaler.hx

您还可以看看Wyngine是如何做到的: https://github.com/laxa88/wyngine/search?utf8=%E2%9C%93&q=scale& https://github.com/laxa88/wyngine/blob/master/Wyngine.hx

您回复(对我的评论)缩放不够。到目前为止,我的所有游戏都具有正确的显示设置,但如果你真的需要视网膜大小的图形,你总是可以选择使用多个图形集。例如:

  • 一组视网膜结果(例如iPad 3)
  • 设置为半视网膜尺寸的默认分辨率(例如iPad 2)
  • 为廉价的Android设备设置低分辨率?

启动应用时,请检查屏幕尺寸。您可以使用它来选择最适合实际屏幕分辨率的内部游戏大小和图形集。可以通过将图形集比例因子应用于原始基值来计算内部游戏大小以及所选图形集的所有X / Y位置。

最后,您使用Scale.scale()从内部游戏大小扩展您的游戏,以适应像iPad pro 12和#34;以及各种各样的Android设备。

这种方法在很多游戏引擎中都很常见,谷歌应该找到像https://v-play.net/doc/vplay-different-screen-sizes/这样的链接来解释屏幕比率以及如何处理它们。