Как указать Wireless или Bluetooth в GameKit при использовании моего собственного пользовательского интерфейса - PullRequest
4 голосов
/ 26 марта 2010

Я решил реализовать свой собственный интерфейс для подключения двух устройств, на которых запущена моя игра, в отличие от использования GKPeerPickerController. Это на самом деле работает довольно хорошо. Но я только что понял, что при создании GKSession я фактически не определяю, должно ли соединение быть беспроводным или Bluetooth. В моем интерфейсе есть опция, позволяющая пользователю указать, какой метод соединения он хотел бы использовать. Как мне сказать GKSession, хочу ли я подключиться через Bluetooth или по беспроводной связи?

Я думаю, что в настоящее время происходит то, что по умолчанию используется беспроводной, если беспроводная связь включена, в противном случае он использует Bluetooth. Но я хотел бы позволить пользователю указать, какой метод подключения это возможно?

Спасибо, Donna

Ответы [ 2 ]

2 голосов
/ 27 июня 2010

Насколько я знаю, вы не можете сделать это самостоятельно. Вот для чего предназначен GKPeerPickerController. По умолчанию он устанавливает соединения через BlueTooth, но вы также можете добавить вторую маску, чтобы пользователь мог выбрать свой протокол. По сути, я настраивал маску, чтобы пользователь мог выбрать Bluetooth или «онлайн» (Wi-Fi):

_picker.connectionTypesMask = GKPeerPickerConnectionTypeNearby|GKPeerPickerConnectionTypeOnline;

Что тогда, если они выберут онлайн, откажутся от выбора пира и продолжат реализацию вашего пользовательского интерфейса. Сессия должна быть создана таким же образом, насколько я знаю. Это не очень хорошо задокументировано: /

1 голос
/ 22 сентября 2010

Чтобы сделать выбор, вам нужен интерфейс, который спрашивает пользователя, хочет ли он использовать сеть или Bluetooth. Если последнее, он может перейти к peerpickercontroller или реализовать вызовы GK сам. Для первого вы должны сбросить GK и закодировать все вручную.

Это довольно сложная тема, включающая настройку потока Bonjour и прослушивание объектов с обеих сторон. Он работает полностью вне GameKit, который является только Bluetooth.

Существует очень хорошая глава о том, как реализовать сетевые протоколы в Apress 'More iPhone 3 Development - Глава 9. Это очень хорошая книга, и стоит того, что только в этой главе вы пытаетесь это сделать. Он очень хорошо объясняет все проблемы и знакомит вас с функциональным примером игры.

...