GKMatchmaker
Оператор импорта
Swift
import GameKit
Objective C
@import GameKit;
Доступность
Доступный в iOS 4.1 и позже.
GKMatchmaker класс используется, чтобы программно создать соответствия к другим проигрывателям и получить приглашения соответствия, отправленные другими проигрывателями.
Соответствия могут быть или одноранговыми или размещены. Одноранговое соответствие полностью поддерживается в Гэйме Ките GKMatch класс. A GKMatch объект обеспечивает все сетевые соединения между устройствами и направляет сетевые данные через Игровой Центр при необходимости. Напротив, размещенное соответствие использует matchmaking для нахождения проигрывателей для соответствия, но игра реализует свои собственные сети между участниками, направляющими через собственный сервер при необходимости.
Для получения приглашений из других проигрывателей игра должна обеспечить обработчик приглашения. После того, как Ваша игра успешно аутентифицирует местного игрока, она должна сразу установить inviteHandler свойство. Если Ваша игра была запущена в ответ на уведомление нажатия, пригласить обработчик сразу вызывают.
Чтобы программно искать другие проигрыватели запустите путем создания a GKMatchRequest объект, описывающий соответствие, которым Вы интересуетесь. Затем вызовите совместно используемого антрепренера findMatchForRequest:withCompletionHandler: метод для создания однорангового соответствия или findPlayersForHostedMatchRequest:withCompletionHandler: метод для создания размещенного соответствия. В любом случае Игровой Центр соответствует проигрыватели в соответствие и вызывает Ваш обработчик завершения. Если соответствие не имеет достаточного количества проигрывателей (например, Вы пригласили определенный список проигрывателей, и некоторые отклонили приглашение), можно создать другой запрос соответствия и вызвать addPlayersToMatch:matchRequest:completionHandler: метод для добавления большего количества участников к соответствию. Как только соответствие завершено, вызовите finishMatchmakingForMatch: метод.
Если Вы реализуете программируемый matchmaking и приглашаете определенные проигрыватели в соответствие, необходимо также реализовать обработчик ответа приглашенного. Этот обработчик уведомляется, поскольку приглашения обрабатываются, позволяя Вам обновить настроенный пользовательский интерфейс Вашей игры для отображения, какие плееры подключаются к соответствию.
-
Возвращает одноэлементного антрепренера экземпляр.
Объявление
Swift
class func sharedMatchmaker() -> GKMatchmaker!Objective C
+ (GKMatchmaker *)sharedMatchmakerВозвращаемое значение
Совместно используемый экземпляр антрепренера.
Обсуждение
Игры не создают a
GKMatchmakerобъект. Вместо этого они получают совместно используемый одиночный элемент путем вызова этого метода.Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 4.0 и позже.
-
Создает соответствие из принятого приглашения.
Объявление
Параметры
inviteПриглашение принято проигрывателем.
completionHandlerБлок, который вызовут, когда было создано соответствие. Этот блок получает следующие параметры:
matchЕсли соответствие успешно создавалось, этот параметр содержит создаваемое соответствие. Иначе, этот параметр
nil.errorЕсли соответствие успешно создавалось, этот параметр содержит
nil. Иначе, этот параметр содержит ошибочный объект, описывающий произошедшую ошибку.Обсуждение
При использовании этого метода для создания соответствия игра должна вывести на экран свой собственный пользовательский интерфейс, чтобы сообщить проигрывателю, что он или она был подключен к соответствию.
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 6.0 и позже.
См. также
-
Блок, который вызовут, когда приглашение присоединиться к соответствию принято местным игроком.
Объявление
Обсуждение
Блок берет следующие параметры:
acceptedInviteПриглашение принято проигрывателем.
playerIDsToInviteМассив
NSStringобъекты, содержащие идентификаторы проигрывателя для дополнительных проигрывателей для приглашения в игру.Ваш блок должен реагировать на приглашение одним из двух способов:
Выведите на экран стандартный пользовательский интерфейс путем инициализации нового
GKMatchmakerViewControllerобъект, передавая объект приглашения и список идентификаторов проигрывателя как параметры.Создайте соответствие программно путем вызова
matchForInvite:completionHandler:метод на совместно используемом экземпляре антрепренера.
Если Ваша игра получает приглашение, в то время как она уже работает, она должна перейти к многопользовательской игре. Это должно очистить любое существующее содержание, такое как заканчивание текущего матча, который играет проигрыватель, и затем обработайте приглашение.
Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 4.1 и позже.
Осуждаемый в iOS 7.0.
-
addPlayersToMatch (_: matchRequest:completionHandler:) - addPlayersToMatch:matchRequest:completionHandler:Добавляют проигрыватели к существующему соответствию.
Объявление
Swift
func addPlayersToMatch(_match: GKMatch!, matchRequestmatchRequest: GKMatchRequest!, completionHandlercompletionHandler: ((NSError!) -> Void)!)Objective C
- (void)addPlayersToMatch:(GKMatch *)matchmatchRequest:(GKMatchRequest *)matchRequestcompletionHandler:(void (^)(NSError *error))completionHandlerПараметры
matchРанее создаваемое соответствие.
matchRequestПараметры для нового запроса соответствия.
completionHandlerБлок, который вызовут, когда завершается matchmaking.
Блок берет следующий параметр:
errorЕсли matchmaking был успешен, этот параметр содержит
nil. Иначе, этот параметр содержит ошибочный объект, описывающий произошедшую ошибку.Обсуждение
Этот метод обновляет существующий объект соответствия путем добавления дополнительных проигрывателей.
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 4.0 и позже.
-
Отменяет ожидание matchmaking запрос.
Объявление
Swift
func cancel()Objective C
- (void)cancelОбсуждение
Обработчик завершения получает обратный вызов с a
GKErrorCancelledошибка.Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 4.0 и позже.
-
Отменяет незаконченное приглашение на другой проигрыватель.
Объявление
Swift
func cancelPendingInviteToPlayer(_player: GKPlayer!)Objective C
- (void)cancelPendingInviteToPlayer:(GKPlayer *)playerПараметры
playerGKPlayerобъект, идентифицирующий проигрыватель, ранее приглашенный в соответствие.Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 8.0 и позже.
-
Подает заявку для нахождения проигрывателей для однорангового соответствия.
Объявление
Swift
func findMatchForRequest(_request: GKMatchRequest!, withCompletionHandlercompletionHandler: ((GKMatch!, NSError!) -> Void)!)Objective C
- (void)findMatchForRequest:(GKMatchRequest *)requestwithCompletionHandler:(void (^)(GKMatch *match, NSError *error))completionHandlerПараметры
requestКонфигурация для желаемого соответствия.
completionHandlerБлок, который вызовут, когда было создано соответствие. Этот блок получает следующие параметры:
matchЕсли matchmaking был успешен, этот параметр содержит создаваемое соответствие. Иначе, этот параметр
nil.errorЕсли matchmaking был успешен, этот параметр содержит
nil. Иначе, этот параметр содержит ошибочный объект, описывающий произошедшую ошибку.Обсуждение
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
На iOS 6, если запрос соответствия
playersToInviteсвойство не -NIL, Игровой Центр отсылает приглашения только в проигрыватели, перечисленные в свойстве. ЕслиplayersToInviteсвойствоNIL, тогда это ищет любые проигрыватели ожидания, соответствующие запрос. Если Ваша игра хочет выполнить программируемый matchmaking для остающихся слотов, это должно вызватьaddPlayersToMatch:matchRequest:completionHandler:метод с соответствием запрашивает чейplayersToInviteсвойствоNIL.До iOS 6, запрос соответствия
playersToInviteсвойство проигнорировано, и этот метод только ищет доступные проигрыватели.Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 4.1 и позже.
См. также
-
findPlayersForHostedRequest (_: withCompletionHandler:) - findPlayersForHostedRequest:withCompletionHandler:Подает заявку для нахождения проигрывателей для размещенного соответствия.
Объявление
Swift
func findPlayersForHostedRequest(_request: GKMatchRequest!, withCompletionHandlercompletionHandler: (([AnyObject]!, NSError!) -> Void)!)Objective C
- (void)findPlayersForHostedRequest:(GKMatchRequest *)requestwithCompletionHandler:(void (^)(NSArray *players, NSError *error))completionHandlerПараметры
requestКонфигурация для желаемого соответствия.
completionHandlerБлок, который вызовут, когда было создано соответствие. Этот блок получает следующие параметры:
playersЕсли matchmaking был успешен, этот параметр содержит массив
GKPlayerобъекты, содержащие проигрыватели для соединения в соответствие. Иначе, этот параметрnil.errorЕсли matchmaking был успешен, этот параметр содержит
nil. Иначе, этот параметр содержит ошибочный объект, описывающий произошедшую ошибку.Обсуждение
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке. Когда Ваш обработчик завершения вызывают, Ваша игра должна подключить те плееры к Вашему собственному серверу.
На iOS 6, если запрос соответствия
playersToInviteсвойство не -NIL, Игровой Центр отсылает приглашения только в проигрыватели, перечисленные в свойстве. ЕслиplayersToInviteсвойствоNIL, тогда это ищет любые проигрыватели ожидания, соответствующие запрос. До iOS 6, запрос соответствияplayersToInviteсвойство проигнорировано, и этот метод только ищет доступные проигрыватели.Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 8.0 и позже.
-
Сообщает Игровому Центру, что закончился программируемый matchmaking.
Объявление
Swift
func finishMatchmakingForMatch(_match: GKMatch!)Objective C
- (void)finishMatchmakingForMatch:(GKMatch *)matchПараметры
matchСоответствие, завершившее процесс matchmaking.
Обсуждение
Если Ваша игра использует программируемый matchmaking, она делает серию вызовов к
findMatchForRequest:withCompletionHandler:иaddPlayersToMatch:matchRequest:completionHandler:методы для заполнения соответствия проигрывателями. Когда соответствие будет иметь надлежащее число игроков, вызовитеfinishMatchmakingForMatch:метод прежде, чем начать матч.Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 6.0 и позже.
-
Инициирует поиск действия во всех группах проигрывателя.
Объявление
Параметры
completionHandlerБлок, берущий следующие параметры:
activityЧисло соответствия запрашивает на все группы проигрывателя в течение предыдущих 60 секунд.
errorЕсли поиск завершился успешно, этот параметр
nil; иначе, этот параметр содержит ошибочный объект, описывающий произошедшую ошибку.Обсуждение
Запрос позволяет Вашей игре видеть, сколько проигрывателей недавно искало соответствие через все группы проигрывателя.
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 4.1 и позже.
-
queryPlayerGroupActivity (_: withCompletionHandler:) - queryPlayerGroupActivity:withCompletionHandler:Игровой Центр запросов действия в группе проигрывателя.
Объявление
Swift
func queryPlayerGroupActivity(_playerGroup: Int, withCompletionHandlercompletionHandler: ((Int, NSError!) -> Void)!)Objective C
- (void)queryPlayerGroupActivity:(NSUInteger)playerGroupwithCompletionHandler:(void (^)(NSInteger activity, NSError *error))completionHandlerПараметры
playerGroupЧисло, однозначно определяющее подмножество игроков Вашей игры.
completionHandlerБлок, который вызывают, когда завершается поиск. Блок берет следующие параметры:
activityЧисло соответствия запрашивает на группу проигрывателя в течение предыдущих 60 секунд.
errorЕсли поиск завершился успешно, этот параметр
nil; иначе, этот параметр содержит ошибочный объект, описывающий произошедшую ошибку.Обсуждение
Запрос позволяет Вашей игре видеть, сколько проигрывателей недавно искало соответствие. В результате можно представить пользовательский интерфейс, показывающий относительное действие в каждой группе проигрывателя. Например, если одна группа видит меньше действия, чем другие, Вы могли бы вывести на экран предупреждение так, чтобы проигрыватели знали, что нахождение соответствия может занять больше времени.
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 4.0 и позже.
-
Отменяет незаконченное приглашение на другой проигрыватель.
Объявление
Swift
func cancelInviteToPlayer(_playerID: String!)Objective C
- (void)cancelInviteToPlayer:(NSString *)playerIDПараметры
playerIDИдентификатор проигрывателя для проигрывателя, ранее приглашенного в соответствие.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 6.0 и позже.
Осуждаемый в iOS 8.0.
-
findPlayersForHostedMatchRequest (_: withCompletionHandler:) - findPlayersForHostedMatchRequest:withCompletionHandler:(iOS 8.0)Подает заявку для нахождения проигрывателей для размещенного соответствия.
Объявление
Swift
func findPlayersForHostedMatchRequest(_request: GKMatchRequest!, withCompletionHandlercompletionHandler: (([AnyObject]!, NSError!) -> Void)!)Objective C
- (void)findPlayersForHostedMatchRequest:(GKMatchRequest *)requestwithCompletionHandler:(void (^)(NSArray *playerIDs, NSError *error))completionHandlerПараметры
requestКонфигурация для желаемого соответствия.
completionHandlerБлок, который вызовут, когда было создано соответствие. Этот блок получает следующие параметры:
playerIDsЕсли matchmaking был успешен, этот параметр содержит массив
NSStringобъекты, содержащие проигрыватели для соединения в соответствие. Иначе, этот параметрnil.errorЕсли matchmaking был успешен, этот параметр содержит
nil. Иначе, этот параметр содержит ошибочный объект, описывающий произошедшую ошибку.Обсуждение
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке. Когда Ваш обработчик завершения вызывают, Ваша игра должна подключить те плееры к Вашему собственному серверу.
На iOS 6, если запрос соответствия
playersToInviteсвойство не -NIL, Игровой Центр отсылает приглашения только в проигрыватели, перечисленные в свойстве. ЕслиplayersToInviteсвойствоNIL, тогда это ищет любые проигрыватели ожидания, соответствующие запрос. До iOS 6, запрос соответствияplayersToInviteсвойство проигнорировано, и этот метод только ищет доступные проигрыватели.Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 4.1 и позже.
Осуждаемый в iOS 8.0.
См. также
-
Позволяет процессу matchmaking найти соседние проигрыватели через Bluetooth или WiFi (только та же подсеть).
Объявление
Swift
func startBrowsingForNearbyPlayersWithHandler(_reachableHandler: ((GKPlayer!, Bool) -> Void)!)Objective C
- (void)startBrowsingForNearbyPlayersWithHandler:(void (^)(GKPlayer *player, BOOL reachable))reachableHandlerПараметры
reachableHandlerКогда достижимость для проигрывателя изменяется, блок вызвал. Блок берет следующие параметры:
playerGKPlayerобъект, идентифицирующий проигрыватель, состояние достижимости которого изменилось.reachableYEStrueесли новый проигрыватель был обнаружен локально,NOfalseесли исчез ранее обнаруженный проигрыватель.Обсуждение
Вы только используете этот метод при реализации программируемого matchmaking. После включения просмотра для соседних проигрывателей используйте ответы для заполнения пользовательского интерфейса с информацией о соседних проигрывателях. Если проигрыватель хочет пригласить проигрыватель в игру, добавьте, что идентификатор проигрывателя проигрывателя к запросу соответствия и вызывает любого
findMatchForRequest:withCompletionHandler:создать соответствие илиaddPlayersToMatch:matchRequest:completionHandler:метод для обновления соответствия.Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 8.0 и позже.
-
Заканчивает поиск соседних проигрывателей.
Объявление
Swift
func stopBrowsingForNearbyPlayers()Objective C
- (void)stopBrowsingForNearbyPlayersОператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 6.0 и позже.
-
startBrowsingForNearbyPlayersWithReachableHandler (_:) - startBrowsingForNearbyPlayersWithReachableHandler:(iOS 8.0)Позволяет процессу matchmaking найти соседние проигрыватели через Bluetooth или WiFi (только та же подсеть).
Объявление
Swift
func startBrowsingForNearbyPlayersWithReachableHandler(_reachableHandler: ((String!, Bool) -> Void)!)Objective C
- (void)startBrowsingForNearbyPlayersWithReachableHandler:(void (^)(NSString *playerID, BOOL reachable))reachableHandlerПараметры
reachableHandlerКогда достижимость для проигрывателя изменяется, блок вызвал. Блок берет следующие параметры:
playerIDИдентификатор проигрывателя для проигрывателя, состояние достижимости которого изменилось.
reachableYEStrueесли новый проигрыватель был обнаружен локально,NOfalseесли исчез ранее обнаруженный проигрыватель.Обсуждение
Вы только используете этот метод при реализации программируемого matchmaking. После включения просмотра для соседних проигрывателей используйте ответы для заполнения пользовательского интерфейса с информацией о соседних проигрывателях. Если проигрыватель хочет пригласить проигрыватель в игру, добавьте, что идентификатор проигрывателя проигрывателя к запросу соответствия и вызывает любого
findMatchForRequest:withCompletionHandler:создать соответствие илиaddPlayersToMatch:matchRequest:completionHandler:метод для обновления соответствия.Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 6.0 и позже.
Осуждаемый в iOS 8.0.
