当我的Cocos2d游戏从后台恢复时,动画动作口吃

时间:2012-11-12 23:27:43

标签: cocos2d-iphone ccaction

我有一个精灵,我在Cocos2d游戏的菜单屏幕上旋转,如下所示:

CCAction* action = [CCRepeatForever actionWithAction:
                         [CCRotateBy actionWithDuration:1.0 angle:90.0f]];
[sprite runAction:action];

当我将游戏发送到后台然后恢复游戏时会出现问题。如果快速发送到后台/恢复操作,则会出现轻微的故障。游戏在后台停留的时间越长,精灵在游戏恢复时“抽搐”的时间越长,再开始正常旋转之前。我在Cocos2d 2.0,Xcode 4.5上,在iOS 6上运行。

编辑:好点Gangcil!这就是我所拥有的(我相信,它来自Cocos2d样板:

// getting a call, pause the game
-(void) applicationWillResignActive:(UIApplication *)application
{
    if( [_navController visibleViewController] == _director )
        [_director pause];
}

// call got rejected
-(void) applicationDidBecomeActive:(UIApplication *)application
{
    if( [_navController visibleViewController] == _director )
        [_director resume];
}

通过将这些功能更改为:

,我能够解决问题
// getting a call, pause the game
-(void) applicationWillResignActive:(UIApplication *)application
{
    if( [_navController visibleViewController] == _director )
    {
        [_director stopAnimation];
        [_director pause];
    }
}

// call got rejected
-(void) applicationDidBecomeActive:(UIApplication *)application
{
    if( [_navController visibleViewController] == _director )
    {
        [_director stopAnimation];
        [_director resume];
        [_director startAnimation];
    }
}

我不确定这是否是正确的方法 - 最初有一点犹豫(可以理解),但动画开始顺利。稍微犹豫不如我之前看到的狂野抖动 - 但我不知道这个解决方案是否可以改进。

0 个答案:

没有答案