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



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

一般情况下,建议将耗时的操作移出主线程。主线程处理应用程序的用户界面,如果你阻塞了它,你将阻止标准UI元素的更新和触摸事件的注册。这取决于你的游戏在后台处理了多少内容(游戏邦注:如物理,AI等),你可能需要将其中的大量内容移至后台线程中。

多线程并不是一个简单的话题,但是苹果通过Grand Central Dispatch使它变得简单了很多,所以我强烈推荐阅读他们的并发编程指南,其中描述了在你的应用程序中实现多线程的技术

Apple在iOS的OpenGL ES编程指南中有一整节题为"并发和OpenGL ES"。在这篇文章中,他们描述了几个使用多线程来提高OpenGL ES应用程序性能的场景。

请不要用UIKIT制作要求高FPS的游戏。如果是2D游戏,你需要选择Quartz或COCOS2D(基于OpenGL),如果是3D游戏,那么就像@Ajeet建议的那样,你应该使用OpenGL或寻找可用于iOS的3D引擎,以获得高FPS。

最新更新