【问题标题】:How to call scene method before application goes to background?如何在应用程序进入后台之前调用场景方法?
【发布时间】:2013-11-01 22:47:52
【问题描述】:

我需要在游戏进入后台之前暂停游戏,所以当再次进入前台时,我会在游戏中看到暂停对话框。为了显示暂停对话框,我有一个场景方法。如何在应用程序进入后台之前调用场景方法?我看到下面的方法是正确的地方:

-(void) applicationDidEnterBackground:(UIApplication*)application
{
    if( [navController_ visibleViewController] == director_ )
        [director_ stopAnimation];
}

我应该直接从导演runningScene 那里得到场景,将它投射到我的场景类中,然后向它发送暂停消息还是这样很丑?

【问题讨论】:

    标签: ios cocos2d-iphone


    【解决方案1】:

    在这种情况下,我认为通知是最干净和最安全的选择。您可以从 applicationDidEnterBackground 发布通知并接收您想要执行某些操作的任何位置,例如:

    在应用代理中:

    - (void)applicationDidEnterBackground:(UIApplication*)application {
       [[NSNotificationCenter defaultCenter] postNotificationName:@"EnteringBackground" object:nil];
    }
    

    在游戏场景中:

    - (void)onEnter {
       [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showPausePopup) name:@"EnteringBackground" object:nil];
    }
    
    - (void)onExit {
       [[NSNotificationCenter defaultCenter] removeObserver:self];
    }
    
    - (void)showPausePopup:(NSNotification*)notification {
       // Code to show popup
    }
    

    【讨论】:

      猜你喜欢
      • 2014-07-07
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多