关于 ios:SpriteKit 中的更新功能与 iPhone X 不同

Update function in SpriteKit different for iPhone X

我有一个 Swift 的 SpriteKit 游戏。它在横向模式下无限滚动,不时在场景的 update() 函数中生成障碍物和敌人。

我也在这里更新了分数值。问题出在 iPhone X 上,因为长度不同,这完全打乱了游戏并使其无法玩。事情产生得太快了,分数更新得很慢。

最重要的是,模拟器运行游戏的方式似乎与实际设备不同,它在模拟器 iPhone X 上运行良好。但是,当我在我的朋友 iPhone X 上查看它时,这是不可能的,所以我没有即使我所做的改变是否会有所作为!

请帮忙!


允许不同的纵横比、分辨率、单位和距离(努力为所有人创造一致的游戏体验)是一个很难解决的难题。

唯一确定的方法是在一致的、任意的物理空间中工作,并通过不关心设备的屏幕/分辨率/纵横比的抽象相机解决分辨率和纵横比。

即便如此,您也需要以这样一种方式优先考虑物理特性,即帧渲染时间的差异(设备之间)不会导致不同设备之间的任何特殊差异。

但是,即使那样,这也不会是绝对完美的。就在附近。

总是忽略模拟器。它只适用于测试事物的位置,而不是它们的行为方式,甚至它们的外观。