GKMatch
Оператор импорта
Swift
import GameKit
Objective C
@import GameKit;
Доступность
Доступный в iOS 4.1 и позже.
A GKMatch объект обеспечивает одноранговую сеть между группой устройств, подключенных к Игровому Центру. Соответствия обеспечивают передачу и речь и игровые данные. Ваша игра никогда непосредственно выделяет GKMatch объекты. Вместо этого это использует GKMatchmaker класс, чтобы программно найти соответствие с другими заинтересованными проигрывателями или a GKMatchmakerViewController возразите для отображения пользовательского интерфейса к проигрывателю.
После того, как Ваша игра получает объект соответствия, установила его делегата и затем ожидает, пока другие участники не подключены к соответствию. Можно читать expectedPlayerCount свойство для определения, сколько плееров не подключило к соответствию.
Каждое устройство в соответствии идентифицируется идентификатором проигрывателя для проигрывателя, аутентифицируемого на том устройстве. Ваша игра передает свои собственные данные к другим проигрывателям путем вызова любого sendDataToAllPlayers:withDataMode:error: метод или sendData:toPlayers:withDataMode:error: метод. Для разрешения голосового чата вызвать voiceChatWithName: создать один или несколько речевых каналов.
Когда Вы закончите с соответствием, вызовите соответствие disconnect метод.
-
delegateСвойствоДелегат к соответствию.
Объявление
Swift
unowned(unsafe) var delegate: GKMatchDelegate!Objective C
@property(nonatomic, assign) id< GKMatchDelegate > delegateОбсуждение
Необходимо установить делегата для получения данных от других участников соответствия.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 4.0 и позже.
-
expectedPlayerCountСвойствоОстающееся число игроков, кто еще не соединился с соответствием. (только для чтения)
Объявление
Swift
var expectedPlayerCount: Int { get }Objective C
@property(nonatomic, readonly) NSUInteger expectedPlayerCountОбсуждение
Значение этого свойства постепенно уменьшается каждый раз, когда проигрыватель соединяется с соответствием. Когда достигает его значение
0, подключаются все ожидаемые плееры, и Ваша игра может начать матч.Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 4.0 и позже.
-
playersСвойствоМассив
GKPlayerобъекты, представляющие проигрыватели в соответствии. (только для чтения)Объявление
Swift
var players: [AnyObject]! { get }Objective C
@property(nonatomic, readonly) NSArray *playersОператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 8.0 и позже.
-
Массив
NSStringобъекты, содержащие идентификаторы проигрывателя для удаленных проигрывателей в соответствии. (только для чтения)Объявление
Swift
var playerIDs: [AnyObject]! { get }Objective C
@property(nonatomic, readonly) NSArray *playerIDsОбсуждение
playerIDsсвойство первоначально включает идентификаторы проигрывателя для любых удаленных плееров, уже подключенных к соответствию; массив может первоначально быть пустым. Поскольку каждый новый проигрыватель соединяется с соответствием, что идентификатор проигрывателя добавляется к массиву. Идентификатор проигрывателя для местного игрока не включен в этот массив.Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 4.1 и позже.
Осуждаемый в iOS 8.0.
См. также
-
Определяет лучший проигрыватель в игре для действия как сервер для соответствия клиент-сервер.
Объявление
Swift
func chooseBestHostingPlayerWithCompletionHandler(_completionHandler: ((GKPlayer!) -> Void)!)Objective C
- (void)chooseBestHostingPlayerWithCompletionHandler:(void (^)(GKPlayer *player))completionHandlerПараметры
completionHandlerБыл определен блок, который вызовут после лучшего проигрывателя.
Блок получает следующий параметр:
playerGKPlayerобъект, идентифицирующий проигрыватель с лучшей предполагаемой производительностью сети, илиnilесли не мог бы в настоящее время определяться проигрыватель.Обсуждение
Вызов этого метода заставляет Гэйма Кита пытаться оценить, какой проигрыватель имеет лучшее полное сетевое соединение с помощью множества метрик, таких как пропускная способность, задержка и надежность сети. Когда Ваша игра реализует клиент-серверную модель поверх однорангового соединения соответствия, Как правило, Вы вызываете этот метод. Посмотрите Разработку Вашей Сети Гэйм.
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 8.0 и позже.
-
Данные передач к списку подключенных плееров.
Объявление
Swift
func sendData(_data: NSData!, toPlayersplayers: [AnyObject]!, dataModemode: GKMatchSendDataMode, errorerror: NSErrorPointer) -> BoolObjective C
- (BOOL)sendData:(NSData *)datatoPlayers:(NSArray *)playersdataMode:(GKMatchSendDataMode)modeerror:(NSError **)errorПараметры
dataБайты, которые будут отправлены.
playersМассив
GKPlayerобъекты, содержащие строки идентификатора для списка проигрывателей, кто должен получить данные.modeМеханизм раньше отправлял данные.
errorЕсли данные не могли бы быть поставлены в очередь по возврату, этот параметр содержит
NSErrorобъект, описывающий ошибку.Возвращаемое значение
YEStrueесли данные были успешно поставлены в очередь для передачи;NOfalseесли соответствие было неспособно поставить данные в очередь.Обсуждение
Когда сеть становится доступной, соответствие ставит данные в очередь и передает их.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 8.0 и позже.
-
Данные передач ко всем проигрывателям соединились с соответствием.
Объявление
Swift
func sendDataToAllPlayers(_data: NSData!, withDataModemode: GKMatchSendDataMode, errorerror: NSErrorPointer) -> BoolObjective C
- (BOOL)sendDataToAllPlayers:(NSData *)datawithDataMode:(GKMatchSendDataMode)modeerror:(NSError **)errorПараметры
dataБайты, которые будут отправлены.
modeМеханизм раньше отправлял данные.
errorЕсли данные не могли бы быть поставлены в очередь по возврату, этот параметр содержит
NSErrorобъект, описывающий ошибку.Возвращаемое значение
YEStrueесли данные были успешно поставлены в очередь для передачи;NOfalseесли соответствие было неспособно поставить данные в очередь.Обсуждение
Когда сеть становится доступной, соответствие ставит данные в очередь и передает их.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 4.0 и позже.
-
chooseBestHostPlayerWithCompletionHandler (_:) - chooseBestHostPlayerWithCompletionHandler:(iOS 8.0)Определяет лучший проигрыватель в игре для действия как сервер для соответствия клиент-сервер.
Объявление
Swift
func chooseBestHostPlayerWithCompletionHandler(_completionHandler: ((String!) -> Void)!)Objective C
- (void)chooseBestHostPlayerWithCompletionHandler:(void (^)(NSString *playerID))completionHandlerПараметры
completionHandlerБыл определен блок, который вызовут после лучшего проигрывателя.
Блок получает следующий параметр:
playerIDИдентификатор проигрывателя для проигрывателя с лучшей предполагаемой производительностью сети, или
nilесли не мог бы в настоящее время определяться проигрыватель.Обсуждение
Вызов этого метода заставляет Гэйма Кита пытаться оценить, какой проигрыватель имеет лучшее полное сетевое соединение с помощью множества метрик, таких как пропускная способность, задержка и надежность сети. Когда Ваша игра реализует клиент-серверную модель поверх однорангового соединения соответствия, Как правило, Вы вызываете этот метод. Посмотрите Разработку Вашей Сети Гэйм.
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 6.0 и позже.
Осуждаемый в iOS 8.0.
-
Данные передач к списку подключенных плееров.
Объявление
Swift
func sendData(_data: NSData!, toPlayersplayerIDs: [AnyObject]!, withDataModemode: GKMatchSendDataMode, errorerror: NSErrorPointer) -> BoolObjective C
- (BOOL)sendData:(NSData *)datatoPlayers:(NSArray *)playerIDswithDataMode:(GKMatchSendDataMode)modeerror:(NSError **)errorПараметры
dataБайты, которые будут отправлены.
playerIDsМассив
NSStringобъекты, содержащие строки идентификатора для списка проигрывателей, кто должен получить данные.modeМеханизм раньше отправлял данные.
errorЕсли данные не могли бы быть поставлены в очередь по возврату, этот параметр содержит
NSErrorобъект, описывающий ошибку.Возвращаемое значение
YEStrueесли данные были успешно поставлены в очередь для передачи;NOfalseесли соответствие было неспособно поставить данные в очередь.Обсуждение
Когда сеть становится доступной, соответствие ставит данные в очередь и передает их.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 4.1 и позже.
Осуждаемый в iOS 8.0.
-
Присоединяется к речевому каналу.
Объявление
Swift
func voiceChatWithName(_name: String!) -> GKVoiceChat!Objective C
- (GKVoiceChat *)voiceChatWithName:(NSString *)nameПараметры
nameКанал для присоединения.
Возвращаемое значение
Автовыпущенный голосовой чат возражает для речевого канала, или
nilесли произошла ошибка.Обсуждение
Вызов этого метода присоединяется к речевому каналу, создавая его при необходимости. Ваша игра должна сохранить сильную ссылку к объекту голосового чата, пока проигрыватель не оставляет канал. Все участники, присоединяющиеся к каналу с тем же именем, подключены друг к другу.
Единственное соответствие может иметь многократные каналы голосового чата, и любой проигрыватель в соответствии может присоединиться к многократным каналам одновременно. Например, основанная на команде игра могла бы создать канал для каждой команды и единственный канал, включающий все проигрыватели.
Объекты голосового чата зависят от сетевого соединения, предоставленного соответствием. Когда разъединения проигрывателя от соответствия, все речевые каналы связались с той остановкой соответствия работать. Как правило, необходимо выйти из любых речевых каналов и выпустить любые сильные ссылки к каналам прежде, чем разъединиться от соответствия.
Родительский контроль может препятствовать тому, чтобы проигрыватель присоединился к голосовому чату. Если проигрывателю не разрешают присоединиться к речевому каналу, a
nilобъект возвращается к Вашему приложению.Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 4.0 и позже.
-
Разъединяет местного игрока от соответствия.
Объявление
Swift
func disconnect()Objective C
- (void)disconnectОбсуждение
Ваша игра должна вызвать
disconnectпрежде, чем удалить последнюю сильную ссылку к объекту соответствия. Вызовdisconnectуведомляет другие проигрыватели, что Вы оставили соответствие.Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 4.0 и позже.
-
Создайте новое соответствие со списком проигрывателей от существующего соответствия.
Объявление
Objective C
- (void)rematchWithCompletionHandler:(void (^)(GKMatch *match, NSError *error))completionHandlerПараметры
completionHandlerСоздается блок, который вызовут после соответствия.
Блок получает следующий параметр:
matchНовое соответствие. Если ошибка произошла, значение этого параметра
nil.errorЕсли ошибка произошла, этот параметр содержит ошибочный объект, описывающий проблему. Если соответствие было успешно воссоздано, значение этого параметра
nil.Обсуждение
Вызов этого метода использует автосоответствие для воссоздания предыдущего соответствия. Новое соответствие с тем же набором проигрывателей создается и возвращается. Если Ваша игра пытается воссоздать соответствия с помощью этого метода, каждый экземпляр игры на каждом устройстве должен вызвать этот метод.
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 6.0 и позже.
Типы данных
-
Механизм раньше передавал данные к другим проигрывателям.
Объявление
Swift
enum GKMatchSendDataMode : Int { case Reliable case Unreliable }Objective C
enum { GKMatchSendDataReliable, GKMatchSendDataUnreliable }; typedef NSInteger GKMatchSendDataMode;Константы
-
ReliableGKMatchSendDataReliableДанные отправляются постоянно, пока они успешно не получены предполагаемыми получателями или времена соединения. Используйте это, когда необходимо гарантировать поставку, и скорость не критически важна.
Надежные передачи поставлены в порядке, который они были отправлены.
Доступный в iOS 4.0 и позже.
-
UnreliableGKMatchSendDataUnreliableЕсли ошибка передачи происходит, данные отправляются один раз и не отправляются снова. Используйте это для небольших пакетов данных, которые должны поступить быстро, чтобы быть полезными для получателя.
Данные, переданные ненадежно, могут быть получены не в порядке получателями. Как правило, Вы создаете свою собственную специфичную для игры обработку ошибок поверх этого механизма.
Доступный в iOS 4.0 и позже.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 4.0 и позже.
-
