iPhone X 的 SpriteKit 更新函数不同
Update function in SpriteKit different for iPhone X
我在 Swift 中有一个 SpriteKit 游戏。它在横向模式下无限滚动,每隔一段时间就会在场景的 update()
函数中产生障碍物和敌人。
我这里也更新分值。问题出在 iPhone X 中,因为长度不同,它完全弄乱了游戏并使其无法玩。事情产生得太快,分数更新缓慢。
最重要的是,模拟器似乎 运行 游戏与实际设备不同,它在模拟器上玩得很好 iPhone X。但是,当我在我的朋友身上看到它时 iPhone X 这是不可能的,所以我什至不确定我所做的改变是否会有所作为!
请帮忙!
允许不同的纵横比、分辨率、单位和距离(努力为所有人创造一致的游戏体验)是一个困难的问题。
绝对确定的唯一方法是在一致的、任意的物理学中工作 space 并通过不关心设备 screen/resolution/aspect 比例的抽象相机解决分辨率和纵横比.
即便如此,您也需要确定物理的优先级,以使帧渲染时间(设备之间)的差异不会在不同设备之间造成任何特殊差异。
但是,即便如此,这也不是绝对完美的。刚刚好。
并始终忽略模拟器。它只适用于测试事物的位置,而不是它们的行为方式,甚至也不是它们的外观。
我在 Swift 中有一个 SpriteKit 游戏。它在横向模式下无限滚动,每隔一段时间就会在场景的 update()
函数中产生障碍物和敌人。
我这里也更新分值。问题出在 iPhone X 中,因为长度不同,它完全弄乱了游戏并使其无法玩。事情产生得太快,分数更新缓慢。
最重要的是,模拟器似乎 运行 游戏与实际设备不同,它在模拟器上玩得很好 iPhone X。但是,当我在我的朋友身上看到它时 iPhone X 这是不可能的,所以我什至不确定我所做的改变是否会有所作为!
请帮忙!
允许不同的纵横比、分辨率、单位和距离(努力为所有人创造一致的游戏体验)是一个困难的问题。
绝对确定的唯一方法是在一致的、任意的物理学中工作 space 并通过不关心设备 screen/resolution/aspect 比例的抽象相机解决分辨率和纵横比.
即便如此,您也需要确定物理的优先级,以使帧渲染时间(设备之间)的差异不会在不同设备之间造成任何特殊差异。
但是,即便如此,这也不是绝对完美的。刚刚好。
并始终忽略模拟器。它只适用于测试事物的位置,而不是它们的行为方式,甚至也不是它们的外观。