Проблема с многопользовательской игрой TurnBased в Game-kit

Я работаю с игрой cocos2d, в которой реализую Game-kit. Моя игра поддерживает многопользовательский режим. Фактически, как приведенный пример ссылка на Raywenderlich. Я класс GKTurnBasedMultiplayer из Game-kit. Но теперь проблема, когда первый игрок подключается к игровому центру и выбирает опцию «Играть сейчас», автоматизируется для другого игрока. но проблема в том, что он напрямую подключается и начинает матч, а не ждет другого игрока. я использую

[[GCTurnBasedMatchHelper sharedInstance] findMatchWithMinPlayers:2 maxPlayers:4 viewController:viewConroller];

для подключения и игры с другими игроками, но напрямую подключает матч.

Я хочу дождаться другого игрока. В этом проблема. Я также использую класс GCTurnBasedMatchHelper.


person Nirav Jain    schedule 11.09.2012    source источник


Ответы (1)


Это предполагаемая функциональность GameKit API. В пошаговом матче данные о матче отправляются с первым ходом, который в случае автоматча является неопределенным игроком, пока Game Center не найдет соперника после первого отправленного хода.

Логика, стоящая за этим, - доктрина «Всегда твоя очередь» с пошаговыми матчами. Если Game Center сопоставит вас с игроком до того, как вы отправите свой первый ход, этот другой игрок будет приглашен на матч, в котором это не его ход, что крайне нежелательно.

Как говорится в документах Apple, вы должны учитывать обстоятельства, при которых атрибут playerID участника матча возвращается к нулю, и обрабатывать его соответствующим образом в коде блока. Противник будет нулевым, пока вы не получите его ход (что, естественно, происходит после первого хода создателя). Если вас это все еще смущает, обратитесь к API пошагового игрового центра.

person Corbin87    schedule 11.10.2012