我正在开发一款 iPhone 游戏,其中包含一个玩家和许多敌人。我使用 OpenGL ES 来显示游戏视觉效果。
我有点困惑是否应该只使用一个线程还是使用多个线程来移动和控制玩家和敌人。您对这个基本游戏架构有什么建议?
我在这一点上不同意 Max 的观点,并表示您不应该完全忽略在应用程序中使用多线程。 OpenGL ES 可以从后台线程进行绘制,但一次只能使用一个线程与 OpenGL ES 上下文进行通信。
Apple 有一个完整的章节标题为“并发和 OpenGL ES” 在他们的 iOS OpenGL ES 编程指南中。其中,他们描述了使用多线程提高 OpenGL ES 应用程序性能的几种场景。
一般来说,建议您将耗时的操作移出主线程。主线程处理应用程序的用户界面,如果您阻止该线程,您将阻止标准 UI 元素更新和触摸事件注册。根据游戏后台执行的处理量(物理、AI 等),您可能需要将其中的重要部分移动到后台线程。
多线程不是一个简单的主题,但 Apple 通过 Grand Central Dispatch 使这变得更加容易,所以我强烈建议阅读他们的并发编程指南它描述了在应用程序中实现多线程的这种技术和其他技术。此外,作为 iOS 开发课程的一部分,我教授了多线程和 GCD 课程,该课程的视频可以在在 iTunes U 上找到.
随着 Apple 推出多核设备,现在利用多线程和 GCD 将在未来为您带来巨大回报。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)