Кнопка «Домой» не завершает многопользовательский матч в Game Center / Gamekit - PullRequest
0 голосов
/ 30 марта 2012

Прежде всего я должен сказать, что я новичок в разработке для iOS.

Моя проблема во время многопользовательской игры с использованием Game Center.Сейчас я не знаю, как получить уведомление от Game Center, если другой игрок (моя игра для двух игроков) покидает игру, нажав кнопку «Домой» на устройстве.

Мне нужно знать, когда один игрокзакрывает игру, так как при повторном открытии игра всегда начинается с нуля, это означает, что она покажет заставку и перейдет непосредственно в главное меню.Я попытался повторно сопоставить, но Game Center, похоже, создает новое соединение и ищет новых игроков, в то время как игрок 2 продолжает «играть» с игроком 1 без какого-либо ответа, поэтому его матч никогда не закончится.

Любой метод, didChangeState, matchmakerViewControllerWasCancelled или authenticationChanged, последний из которых находится под уведомлением, похоже, что-то делает, когда нажата кнопка «домой».

1 Ответ

0 голосов
/ 04 апреля 2012

Попробуйте подписаться на NSNoficationCenter, чтобы узнать, когда ваше приложение переходит в фоновый режим:

[[NSNotificationCenter defaultCenter] addObserver:self
    selector:@selector(userPressedHomeButton:) 
    name:UIApplicationDidEnterBackgroundNotification object:nil];

В вашей функции userPressedHomeButton: вы можете решить, как уведомить другого игрока или приостановить игру. НО, вы должны действовать быстро, потому что iOS не позволит вашему приложению работать дольше, чем через несколько секунд после того, как оно было приостановлено.

В качестве альтернативы подписке на NSNotificationCenter вы можете реализовать свою реализацию в AppDelegate:

- (void)applicationWillResignActive:(NSNotification *)notification { }
...