2010-03-10 2 views
1

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

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

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

  • Игра начинается с представления GKPeerPickerController с connectionTypeMask из «GKPeerPickerConnectionTypeNearby» и настройки это делегат «я».

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

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

  • Чтобы отправить снимок, игра требует: «SendData: toPeers: withDataMode: ошибка: '

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

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

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

ответ

3

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

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

+0

Точно .......! –

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