1

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

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

因此,当我将对象和 GFX 的所有尺寸加倍时,它可以在 iPad mini 上运行,但对于 iPad2 来说太大了。

我查看了一个后备缓冲区和一个 renderTarget,如下所述: https ://www.youtube.com/watch?v=OV1PTo5XSCA

khafile中还有windowSize选项,好像什么也没做。

表面 x 和 y 坐标似乎总是以设备的真实屏幕坐标出现。

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

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

4

1 回答 1

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)设置为视网膜大小的一半
  • 为廉价的安卓设备设置了低分辨率?

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

最后,您使用 Scale.scale() 将您的游戏从内部游戏大小缩放到适合 iPad pro 12" 和各种 Android 设备等设备。

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

于 2017-01-06T15:05:24.267 回答