GameKit Bluetooth - PullRequest
       6

GameKit Bluetooth

1 голос
/ 10 марта 2010

Я пытаюсь понять основные шаги, необходимые для игры, которую я пытаюсь выполнить, используя GameKit для соединений Bluetooth. У меня есть только 1 устройство, поэтому я не могу проверить свои идеи очень легко.

В игре участвуют не более 2 игроков по Bluetooth через GameKit, и единственные данные для отправки / получения - это «выстрел», который включает только данные о положении и направлении.

Это то, что, я думаю, должно произойти, я просто хочу, чтобы кто-то указал на любые ошибки, которые я совершил:

  • Игра начинается с представления GKPeerPickerController с connectionTypeMask 'GKPeerPickerConnectionTypeNearby' и установки его делегата на 'self'.

  • Реализован метод делегата GKPeerPickerController peerPickerController: didConnectPeer: toSession: ', который устанавливает для сеансов dataReceiveHandler значение self. PeerID добавляется к NSMutableArray, который содержит все идентификаторы одноранговых устройств. (В любое время должен быть подключен только один пир).

  • Чтобы принудительно установить только одно равноправное соединение на игру, метод 'session: didReceiveConnectionRequestFromPeer:' проверяет свойство 'count' NSMutableArray, который содержит подключенные peerID. Если 'count'> 0, то мы отвечаем вызовом: 'denyConnectionFromPeer:' else, мы вызываем: 'acceptConnectionFromPeer: error:'

  • Чтобы отправить снимок, игра вызывает: 'sendData: toPeers: withDataMode: error:'

  • Чтобы получить снимки, игра отвечает: 'receiveData: fromPeer: inSession: context:'

Не пропущены ли какие-либо шаги? Например, если пользователь пытается подключиться ко мне до того, как я подключусь к ним, что произойдет с моим GKPeerPickerController? Как я знаю, чтобы отклонить это?

А без другого iPhone / iPod я не могу проверить.

1 Ответ

3 голосов
/ 10 марта 2010

Прежде всего, если вы хотите протестировать Bluetooth в Gamekit, вам действительно понадобится второе устройство. Если вы серьезно относитесь к своему приложению, попробуйте купить дешевый / отремонтированный iPhone или iPod Touch, который будет поддерживать GameKit Bluetooth (самые старые устройства этого не делают). Я на самом деле думаю, что вы лучше тестируете два Mac, но если у вас еще нет второго, это дорогое предложение.

То, что вы опубликовали выше, в значительной степени правильно - на самом деле использовать PeerPicker довольно просто, и вы сможете легко пройти через него, используя документы Apple. Проблема в том, что по моему опыту, это немного дергается. Это может быть потому, что я использую 3GS и 3G для тестирования, и они имеют разные Bluetooth внутри, но часто я вижу странные вещи, когда произошел описанный вами сценарий - «если пользователь пытается подключиться ко мне до того, как я подключусь им." В конце концов, как правило, он все еще работает, но не без небольшого перерыва в ожидании и, возможно, пользователю придется повторять процесс раз или два.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...