如何检测游戏中心身份验证弹出窗口

时间:2010-10-13 22:55:37

标签: ios4 game-center

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

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

2 个答案:

答案 0 :(得分: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];
 }
}

答案 1 :(得分:0)

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

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

- (无效)applicationWindowDidResignActive {   [[Gamemanager sharedManager]暂停];

}