如何在游戏中使用多线程(iOS)

Gre*_*reg 1 iphone multithreading lag ios

我正在制作一款基于NSTimer的游戏,以40 fps的速度调用主循环,当我运行它时,即使在最新的iPod touch上,它仍然会滞后一个明显的数量.是否可以使用多线程来减少滞后而不降低帧速率,或者多线程是否只是为了在执行复杂计算时保持ui响应?如果它可以使用,你能指点我一个如何实现它的教程吗?

Aje*_*rya 5

通常,建议您从主线程中移除耗时的操作.主线程处理应用程序的用户界面,如果阻止,则会阻止标准UI元素更新和触摸事件注册.根据游戏幕后(物理,AI等)的处理程度,您可能需要将其中的大部分内容移动到后台线程.

多线程不是一个简单的主题,但Apple通过Grand Central Dispatch使这变得更容易,因此我强烈建议阅读他们的并发编程指南,该指南描述了这个以及在您的应用程序中实现多线程的其他技术

Apple 在其面向iOS的OpenGL ES编程指南中有一个名为" Concurrency and OpenGL ES " 的整个部分.在此,他们描述了几种使用多线程提高OpenGL ES应用程序性能的方案.