切换场景时游戏冻结(Cocos2d)



当我第一次运行我的应用程序时,一切都很好,但是当我关闭它(只是按下home键,而不是关闭进程)并重新打开它时,如果我点击任何改变场景的按钮,它就会冻结。背景音乐仍然在播放,Xcode也没有告诉我有任何错误,但整个屏幕都被冻结了,我按下的按钮也停留在高亮状态。这是我使用的代码,导致它在关闭和重新打开后冻结:

[[CCDirector sharedDirector] replaceScene:[PlayScene scene]
                           withTransition:[CCTransition 
transitionPushWithDirection:CCTransitionDirectionLeft duration:0.5f]];

同样,这可能是由同样的问题引起的。当我退出有动画的应用程序播放屏幕并重新打开时,动画已经停止了。我想我可以通过在应用程序不活跃时暂停游戏来解决这个问题。

更新:现在Xcode给出一个错误。当应用程序关闭时,我在CCGLView的swapBuffers方法中获得以下行上的EXC_BAD_ACCESS错误。m类:

if(![_context presentRenderbuffer:GL_RENDERBUFFER])

一旦Xcode实际上给出了一个错误,我能够找到这个解决方案:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [[CCDirector sharedDirector] pause];
    [[CCDirector sharedDirector] stopAnimation]; // Add
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
    [[CCDirector sharedDirector] resume];
    [[CCDirector sharedDirector] startAnimation]; // Add
}

最新更新