Пользовательский игровой центр 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.