我正在开发一款基本上有两个计时器来控制游戏玩法的游戏。一个计时器是 CADisplayLink,它每帧都会调用以重绘显示(使用 OpenGL),因此频率略低于 60 Hz。另一个计时器是更新游戏逻辑的 NSTimer,我曾尝试在 30 Hz 和 100 Hz 之间的任何地方运行它。
当我在 iOS 模拟器中运行程序时,它很迟钝,似乎在跳帧。当我使用 Xcode 在手机上运行程序时,它运行良好,没有任何延迟或跳过。然后,当我从手机主屏幕上的图标运行程序时,它会出现延迟。
在我的手机上加载程序并从 Xcode 运行它并从手机本身启动它有什么区别?我知道它正在与 Xcode 调试器进行通信,但是连接到 Xcode 时如何才能更好地工作?
最后,当我从同一个 CADisplayLink 运行游戏逻辑和图形时,延迟似乎要小得多。有一个显示链接和一个 NSTimer 真的会导致这样的问题吗?