2010-03-26 1 views
4

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

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

Спасибо, Донна

+1

Я почти уверен, что Flight Control делает это. При настройке многопользовательской игры вы можете выбирать между Wi-Fi и Bluetooth, все в пользовательском интерфейсе. –

+0

Это то, чего я пытался достичь в то время, пользовательский интерфейс для пользователя, потому что я видел, как Flight Control это сделал. Но не похоже, что я могу сказать GKSession, если я хочу использовать Bluetooth или Wireless, поэтому кто знает, что это такое, что Flight Control действительно делает за кулисами. – DonnaLea

+0

Вот хороший пример кода: http: // mobileorchard. com/tutorial-networking-and-bonjour-on-iphone/Книга Apress отлично подходит. – vesselhead

ответ

2

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

_picker.connectionTypesMask = GKPeerPickerConnectionTypeNearby|GKPeerPickerConnectionTypeOnline; 

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

1

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

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

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

+0

Это неверно: GameKit отлично использует Wi-Fi. – Adam

Смежные вопросы