Я пытаюсь понять основные шаги, необходимые для игры, которую я пытаюсь выполнить, используя 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 я не могу проверить.