iPhone X 的 SpriteKit 更新函数不同

Update function in SpriteKit different for iPhone X

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

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

最重要的是,模拟器似乎 运行 游戏与实际设备不同,它在模拟器上玩得很好 iPhone X。但是,当我在我的朋友身上看到它时 iPhone X 这是不可能的,所以我什至不确定我所做的改变是否会有所作为!

请帮忙!

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

绝对确定的唯一方法是在一致的、任意的物理学中工作 space 并通过不关心设备 screen/resolution/aspect 比例的抽象相机解决分辨率和纵横比.

即便如此,您也需要确定物理的优先级,以使帧渲染时间(设备之间)的差异不会在不同设备之间造成任何特殊差异。

但是,即便如此,这也不是绝对完美的。刚刚好。

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