【问题标题】:Game Freezes when switching scenes (Cocos2d)切换场景时游戏卡顿(Cocos2d)
【发布时间】:2014-08-11 18:25:45
【问题描述】:

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

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

另外,这可能是由相同的问题引起的。当我将应用程序退出具有动画的播放屏幕并重新打开时,动画已停止。我想我可以通过在应用程序处于非活动状态时暂停游戏来解决这个问题。

更新:现在 Xcode 确实给出了错误。当应用程序关闭时,我在 CCGLView.m 类的 swapBuffers 方法的以下行中收到 EXC_BAD_ACCESS 错误:

if(![_context presentRenderbuffer:GL_RENDERBUFFER])

【问题讨论】:

    标签: ios objective-c xcode cocos2d-iphone


    【解决方案1】:

    一旦 Xcode 实际出现错误,我就能找到这个解决方案:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多