2010-07-24 38 views
1

我正在制作一个相对简单的基于OpenGL ES的iPhone游戏。在iPhone 4上进行测试时,我注意到多任务不能“工作”。具体来说,应用程序在进入后台状态时会自动终止(我认为这是由于在后台进行OpenGL调用和/或不释放某些资源)。由于游戏非常简单... 20-30级别(每级约1分钟)...我想知道:在这种情况下,多任务真的很重要吗?多任务对于简单的iPhone游戏真的很重要吗?

整个游戏是基于OpenGL和用户界面是非常快......所以终止应用程序,重装它,并通过几个屏幕步进不似乎是一个大问题。你怎么看?在这种情况下,支持多任务真的很重要吗?

+4

在文档中明确指出,您在后台进行任何OpenGL ES调用时都是禁止的(http://developer.apple.com/iphone/library/documentation/iphone/conceptual/iphoneosprogrammingguide/BackgroundExecution/BackgroundExecution。 HTML)。这就是为什么你被终止。如果这件事很重要,取决于你... – 2010-07-24 15:15:08

回答

2

如果你希望你的用户喜欢你,这很重要。你可以做的是暂停比赛并停止任何绘图调用时,你的应用程序变得

- (void) applicationWillResignActive:(UIApplication *)application

,要么留暂停或恢复在

- (void)applicationDidBecomeActive:(UIApplication *)application

绘制即使你应该这样做你的应用程序未在多任务设备上运行,因为如果您收到推送通知或本地通知,则您的应用程序将处于非活动状态,您应该暂停游戏。

2

由于calmh引用文档,这里的一段话:

不要做任何的OpenGL ES从 代码调用。您不得创建任何类型的EAGLContext对象或发出任何OpenGL ES绘图命令。使用 这些调用将导致您的 应用程序立即终止 。

不知道为什么你想在这种情况下绘制。

至于“逐步通过几个屏幕”......为什么不退出当前状态退出应用程序,并在以后恢复?