我在Swift中有一个SpriteKit游戏。它以风景模式无限滚动,每隔一段时间就会在场景的update()
函数中产生障碍物和敌人。
我也在这里更新分数值。问题出在iPhone X上,因为它的长度不同,它完全混淆了游戏并使其无法播放。事情产生得太快,分数缓慢更新。
最重要的是模拟器似乎以不同于实际设备的方式运行游戏,它在模拟器iPhone X上播放得很好。但是,当我在我的朋友iPhone X上看它时它是不可能的,所以我甚至不是确定我所做的改变是否会产生影响!
请帮忙!
答案 0 :(得分:1)
允许不同的宽高比,分辨率,单位和距离(努力为所有人创造一致的游戏体验)是一个难以解决的难题。
绝对肯定的唯一方法是在一致的任意物理空间中工作,并通过抽象的相机解决分辨率和宽高比,该相机不关心设备的屏幕/分辨率/宽高比。
即便如此,您还需要优先考虑物理因素,使得帧渲染时间(设备之间)的差异不会导致不同设备之间出现任何特殊差异。
但即便如此,那也不是绝对完美的。接近它。
始终忽略模拟器。它只适用于测试事物的位置,而不是它们的行为方式,甚至是它们的外观。