SpriteKit-为什么我的游戏在新的iOS版本发布时会出现bug



spritkit实际上是如何工作的?是编译到应用程序中的框架代码,还是iOS本身的一部分。我注意到,每次iOS有重大更新时,我都会发现自己不得不重写一堆代码,并修复我的spritkit游戏中的错误。为什么?

SpriteKit运行时环境在手机上,而不是应用程序的一部分。这节省了空间(否则,每个应用程序都会包含它们使用的所有运行时库的副本,从而导致大量重复),但也可能导致您遇到的问题,运行时的更新可能会"破坏"以前工作的应用程序。

这是因为当你调用iOS功能(在SpriteKit、UIKit等中)时,你的代码会分支到手机本身存储的一些代码。如果此代码发生更改(iOS更新),并且突然期望使用CGVector而不是CGPoint,或者函数调用上的第三个参数,则程序将失败。

一些编译器能够将运行时库与可执行文件"绑定"在一起,使应用程序对操作系统升级更有弹性,但这可能会产生连锁反应,例如运行时间为数年(对于我处理过的一些代码来说甚至是几十年)的程序,但它已经不起作用了(Y2K提供了这方面的例子,大型机上IBM的COBOL运行时环境的旧版本不符合Y2K),相比之下,只需要为运行时的一个增量发布进行更新。

它是iOS的一部分。通过在Info.plist中设置PrefersOpenGL=YES标志,您可以在iOS9.X中使用以前的OpenGL模式,有关更多信息,请参阅https://stackoverflow.com/a/37768928/763355

相关内容

最新更新