ios - SpriteKit 中的更新功能与 iPhone X 不同

标签 ios swift sprite-kit iphone-x

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

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

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

请帮忙!

最佳答案

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

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

即便如此,您也需要以帧渲染时间(设备之间)的差异不会在不同设备之间造成任何特殊差异的方式对物理进行优先级排序。

但是,即便如此,这也不是绝对完美的。就在附近。

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

关于ios - SpriteKit 中的更新功能与 iPhone X 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49397894/

相关文章:

iphone - 将音频文件转换为字节数组 iPhone 时出现 OSError -40

ios - 保存在其他线程中时,应用崩溃

php - 新的 APNS 提供商 API 和 PHP

ios - 当我在真实设备 iOS 中运行它时应用程序崩溃

ios - Spritekit- DidBeginContact 未被调用

ios - 使用 SpriteKit 和 UITextView 的 UITextSelectionView 名称无法识别的选择器

swift - 如何缩放以在所有设备中保持相同的距离?

objective-c - GL_TRIANGLE_STRIP 和顶点数组出错

swift - 在 SwiftUI View 上为 DragGesture 的 predictedEndTranslation 设置动画

iOS 网络连接失败策略建议