Как обнаружить всплывающее окно аутентификации Game Center - PullRequest
0 голосов
/ 14 октября 2010

Я внедрил Game Center в свою игру.Однако меня беспокоит одна вещь: как определить, когда Game Center запускает всплывающее окно для входа в систему. Если пользователь работает пальцами быстро, а сеть работает немного медленно, он может запустить игру до запуска всплывающего окнаэто нормально, но я хочу поставить игру на паузу, когда они войдут в систему. Я думал, что будет вызван метод UIApplicationDelegate - (void)applicationWillResignActive:(UIApplication *)application, но это не так.

Есть ли способ обнаружить это и позволить мне приостановить игру, пока пользователь посещает всплывающее окно?

Ответы [ 2 ]

2 голосов
/ 04 декабря 2010

Помните, что вам нужно реализовать два следующих метода, чтобы получать уведомления в случае изменений.

Ниже приведена моя простая версия. Так что в принципе вы не можете запустить сетевую игру или просмотреть лестницу.до того как были идентифицированы как кнопки были скрыты:)

- (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];
 }
}
0 голосов
/ 03 сентября 2012

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

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

- (Недействительными) applicationWindowDidResignActive { [[Gamemanager sharedManager] пауза];

}

...