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

标签 iphone ios multithreading lag

我正在制作一款基于NSTimer并以40 fps调用主循环的游戏,当我运行它时,即使是在最新的iPod touch上,它的运行速度仍然滞后。是否可以使用多线程来减少延迟而不降低帧速率,或者多线程仅仅是为了在执行复杂计算时保持ui的响应能力?如果可以使用它,您能给我介绍一个有关如何实现的教程吗?

最佳答案

通常,建议您将耗时的操作移出主线程。主线程处理应用程序的用户界面,如果阻止该主线程,则将阻止标准UI元素更新和注册触摸事件。根据游戏的幕后处理量(物理,人工智能等),您可能需要将其中的大部分移至后台线程。

多线程不是一个简单的主题,但是Apple通过Grand Central Dispatch使这变得容易得多,因此,我强烈建议阅读他们的Concurrency Programming Guide,它描述了此方法以及在您的应用程序中实现多线程的其他技术。

苹果在其《 iOS OpenGL ES编程指南》中有一整节标题为“Concurrency and OpenGL ES”的部分。在此,他们描述了几种使用多线程提高OpenGL ES应用程序性能的方案。

关于iphone - 游戏中如何使用多线程(iOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8542207/

相关文章:

iOS 网络事件指示器未显示

iphone - AVMutableComposition 视频创建问题

iphone - 如何在Ipad中自定义SubView为PopuPView?

ios - 使用 "po"从控制台日志中的服务器响应中获取数据

java - JTable 和线程

ios - -后台线程上的 allKeys 导致错误 : __NSDictionaryM was mutated while being enumerated

iphone - 在应用程序购买中,更改现有应用程序的应用程序 ID

iphone - 更改 UIWindow subview 时,未设置方向

ios - 如何设计自定义导航栏

Python: 'PyQt5.QtCore.pyqtSignal' 对象没有属性 'connect'