0

我已经在我的游戏中实现了游戏中心。但是,让我感到困扰的一件事是如何检测 Game Center 何时启动弹出窗口以进行登录。如果用户手指很快并且网络有点慢,他们能够在弹出窗口开始之前开始游戏,这很好,但我想在他们登录时暂停游戏。我以为会调用该UIApplicationDelegate方法- (void)applicationWillResignActive:(UIApplication *)application,但事实并非如此。

有没有办法检测到这一点,从而让我在用户关注弹出窗口时暂停游戏?

4

2 回答 2

2

请记住,您必须实现以下两种方法才能在更改时收到通知。

下面是我的简单版本..所以基本上你不能开始网络游戏,或者在被识别为按钮被隐藏之前查看梯子:)

- (void) registerForAuthenticationNotification
{

    NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
    [nc addObserver: self
           selector:@selector(authenticationChanged)
               name:GKPlayerAuthenticationDidChangeNotificationName
             object:nil];
}
- (void) authenticationChanged
{
    if ([GKLocalPlayer localPlayer].isAuthenticated)
 {
  [networkGame setHidden:NO];
  [ladder setHidden:NO];
 }
 else
 {
  [networkGame setHidden:YES];
  [ladder setHidden:YES];
 }
}
于 2010-12-03T23:26:56.617 回答
0

来自http://www.cocos2d-iphone.org/forum/topic/14921

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWindowDidResignActive:) name:UIWindowDidResignKeyNotification object:nil];

-(void)applicationWindowDidResignActive { [[Gamemanager sharedManager] pause];

}

于 2012-09-03T08:23:42.747 回答