Развитие IOS: при получении игрового центра пригласить, как получить объект Gkmatch?

StackOverflow https://stackoverflow.com/questions/4638046

Вопрос

Я создаю игру для iPhone, которая использует игровой центр, и мне трудно понять, как начать игру матча, которая была начата при получении приглашения для игры от друга. То документы скажи это...

Параметр PreminyInvite не является NIL, когда приложение получает приглашение непосредственно от другого игрока. В этой ситуации приложение другого игрока уже создало запрос сопоставления, поэтому эта копия вашего приложения не должна создавать ее.

Согласно этому, мне не нужно создавать запрос на сопоставление с момента игрока, который уже создал приглашение. Если это так, то как получить объект Gkmatch, необходимый для отправки / получения данных в / с другого проигрывателя? Единственный способ, которым я знаю, чтобы получить объект Gkmatch - создать запрос сопоставления и позвонить findMatchForRequest Способ, который говорит документы, я не должен делать.

Единственный пример кода, который у них есть для этого, включает в себя создание и использование GKMatchmakerViewController, который я не могу использовать, так как я создаю свой собственный пользовательский вид.

Большое спасибо за вашу мудрость!

Это было полезно?

Решение

Я получил ответ от одного из инженеров Apple на этом, вот что он сказал ...

Вы можете сделать автоматическое соответствие с пользовательскими видами, но нет способа использовать приглашения без использования GKMatchMakerviewController. Таким образом, вы должны следовать образцу кода.

Я думаю, что будет просто быть радикальным перерывом в консистенции моего пользовательского интерфейса.

Другие советы

У меня есть решение в игровой центр пригласить проблему. Так что следуйте этим шагам: -
1- Убедитесь, что настройки Push-уведомлений находятся в настройках, и приглашения Friend находятся в вашей настройке учетной записи Game Center.
2-теперь установите последнюю версию игру Fruit Ninja
3-открытый игровой центр и войдите, затем положите его в фоновом режиме.
4-открытые фрукты ниндзя напрямую перейти к новой игре => многопользовательский => Gamecenter
5 - Теперь вы увидите два варианта (пригласить друга и играть сейчас в правом верхнем углу)
6 - Нажмите кнопку «Играть сейчас», поэтому игровой центр найдет незванную игру для вас.
7 - Когда игра начинается, и вы сможете увидеть, как ваше незвушенное имя друга в правом верхнем углу. После завершения игры перейдите непосредственно к игровому центру на заднем плане и в раздереди ваших игр и перейдите в фрукты ниндзя в списке игр. Здесь вы увидите недавно сыгранный вариант, коснитесь него. Здесь вы увидите в верхней части списка имя игрока (которому вы играли) коснитесь имени и немедленно отправьте ему запрос на добавление в друзья.
8 - если он принимает запрос на друзей => (Ваш недавно добавленный друг) => GamePlayed вместе (фрукты ниндзя) => Hit Play (в правом верхнем углу)
9 - Теперь игра откроется, и вы увидите страницу GC. Нажмите кнопку «Пригласить» и выберите «Недавно добавленный друг», а затем отправьте, ожидая его и готов к воспроизведению.

Теперь ваш ID GC проверил, и вы можете пригласить любого из своих друзей и можете играть в любую игру (которая поддерживает функцию приглашения)

Несмотря на то, что сказал Apple Engineer, как насчет попробовать что-то подобное, чтобы пригласить без использования пользовательского вида:

[[GKLocalPlayer localPlayer] loadFriendsWithCompletionHandler:^(NSArray *friends, NSError *error) {



[GKPlayer loadPlayersForIdentifiers:friends withCompletionHandler:^(NSArray *players, NSError *error) {
    for (GKPlayer *player in players) {
        NSLog(@"%@",player.alias); //here I'm just logging the aliases but the array players can be used in any way
    }
}];

} ];

Теперь, если пользователь выбирает игроков из этого списка на пользовательском представлении, GKMatchrequest имеет свойство под названием PlayerToinvite, и мы можем установить этих игроков в эту собственность. И создать совпадение программно, используя этот запрос.

Это выглядит очень возможно, но я не пробовал, если честно

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top