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