Пользовательский игровой центр GKTurnBasedMatchmakerViewController

Я пытаюсь создать собственный контроллер представления для отображения активных игр пользователю (аналогично тому, что делает Letterpress).

В настоящее время я пытаюсь создать подкласс GKTurnBasedMatchmakerViewController, за исключением того, что я не знаю, как скрыть элементы по умолчанию (для приглашения / показа существующих игр) и добавить свои собственные. В настоящее время я играю в журналы, чтобы обеспечить доступ к активным матчам, текущим идентификаторам игроков и т. Д. (Которые я недавно выяснил), но я застрял в том, как начать с интерфейса.

Не уверен, какой код, если таковой имеется, будет уместен на данный момент. Пожалуйста, дайте мне знать.

Цель: скрыть текущие элементы. Я предполагаю, что могу построить интерфейс, как и для любого другого приложения после этого.

Спасибо,

  • Стивен

1 ответ

Решение

Я не думаю, что это хорошая идея для подкласса. Начните с чистого UIViewController и создайте пользовательский интерфейс оттуда. Затем реализуйте все необходимые методы.

Установите себя в качестве делегата:

   [GKTurnBasedEventHandler sharedTurnBasedEventHandler].delegate = self;

так вы получите делегат события, такой как:

handleInviteFromGameCenter
handleTurnEventForMatch
handleMatchEnded
etc. 

Добавьте UITableView и загрузите все совпадения из Game center:

   [GKTurnBasedMatch loadMatchesWithCompletionHandler:^(NSArray *matches, NSError *error) {
     // Add matches to table view
   }];

Не забудьте сначала аутентифицировать игрока:

GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
localPlayer.authenticateHandler = ^(UIViewController *loginVC, NSError *error)
{

};

Начать матч программно:

GKMatchRequest *request = [[GKMatchRequest alloc] init];
request.minPlayers = 2;
request.maxPlayers = 2;
[GKTurnBasedMatch findMatchForRequest:request withCompletionHandler:^(GKTurnBasedMatch *match, NSError *error)
 {

 }];

и т.д. Посмотрите на документ для полного API.

Другие вопросы по тегам