Любой пример проекта, который показывает, как использовать gamekit (модель сервер-клиент) БЕЗ (!) GKPeerPickerController и более 2 устройств? - PullRequest
4 голосов
/ 07 мая 2011

Есть ли пример проекта, который показывает, как использовать gamekit без gkpeerpicker? И Есть ли образцы, которые используют Bonjour (но без подключения к Интернету и без беспроводного маршрутизатора)?Некоторая информация (для обоих проектов):

  • только bluetooth (bonjour для другого проекта)
  • более 2-х устройств (если возможно)
  • модель клиента сервера (как заставить это работать)
  • отправка / получение данных
  • сервер может решить, является ли он "видимым" для других "потенциальных" клиентов
  • показать в виде таблицы "обнаружил «устройства» -> если пользователь нажимает на ячейку таблицы (имя устройства, например, «iPod's Touch Тома»), оно собирается в пару, но другой пользователь должен принять соединение (UIAlertView), и если он соглашается, они будут связаныup
  • показать все подключенные одноранговые узлы (подключенные к серверу) в удобном для просмотра виде
  • исключить некоторые одноранговые узлы (только сервер может исключить другие) (это должно быть легко реализовать. просто отправьте специальныйпакет клиенту со строкой, в которой написано «KICK YOURSELF», чем он сам себя ударит)
  • пригласить других клиентов (в поиске) (на самом деле это не нужно, но было бы здорово):
  • позволить клиентам / серверу двигатьсяобъекты (физические объекты в box2d (cocos2d)), а затем каждый клиент должен показывать точно такое же моделирование на экране.

После нескольких часов использования Google, я думаю, что нет примеров проектов, которые показывают эти "функции" выше.Может, кто-нибудь может сделать один?Пожалуйста, не говорите мне немного теории.Я так много читал, но пример проекта (или больше, и другой для бесплатной версии) с комментариями кода был бы отличным!

Редактировать: Я, вероятно, добавлю награду за это;).В настоящее время я не могу;)

Большое спасибо за чтение:)

cocos2dbeginner

Ответы [ 3 ]

2 голосов
/ 27 мая 2011

Я не собираюсь писать это для вас, но могу помочь с некоторой информацией, чтобы вы начали. Существует множество примеров, демонстрирующих некоторые из ваших функций, в частности пример witap от Apple .

Стоит отметить, что вы не можете перейти с Bluetooth на Bonjour. Bluetooth - это метод общения, Bonjour - как вы общаетесь. Таким образом, вы должны были бы делать Bonjour вещания с одной стороны и подключения с другой стороны. Bonjour через bluetooth заботится в API Apple, он должен «просто работать». См. this для получения дополнительной информации здесь.

Эта страница от Apple содержит не только концепцию игрового набора, которую вы ищете, но также сообщает вам имена методов, которые вы будете использовать для выполнения своих задач, даже если вы не хотите идти через предоставленный пользовательский интерфейс, который Apple имеет с GameKit.

Здесь , здесь , здесь и здесь являются ссылками для дополнительных примеров сетевых подключений. Пока вы не выполняете сложные задачи с сокетами, мне нравится это лично, это делает вещи очень простыми.

Надеюсь, это поможет некоторым.

1 голос
/ 25 мая 2011

Я очень рекомендую страницу Рэя Вендерлихса.Существует учебное пособие по работе с сетями Gamecenter, которое соответствует некоторым вашим запросам.http://www.raywenderlich.com/3276/how-to-make-a-simple-multiplayer-game-with-game-center-tutorial-part-12

В соответствии с вашим псевдонимом: Есть еще много полезных руководств с высоким качеством.Перейдите к http://www.raywenderlich.com/tutorials для списка.

0 голосов
/ 17 июня 2013

У Apple сами есть демонстрационные проекты, которые показывают Wi-Fi-соединения с использованием GKSession и Bluetooth с использованием GKPeerPickerController. Если вам нужен peerPicker и опция для обоих, я думаю, вам нужно использовать контроллер peerpicker, чтобы предоставить пользователю выбор. Используйте этот код в том месте, в котором вы хотите, чтобы появился инструмент выбора, после того, как вы его создали.

picker.connectionTypesMask = GKPeerPickerConnectionTypeOnline | GKPeerPickerConnectionTypeNearby;

Тогда, если они выберут wifi, используйте код из проекта GKRocket в библиотеке примеров кода iOS. Если они выбирают Bluetooth, используйте GKTank.

Код GKRocket (с использованием GKSession и таблиц) намного сложнее следовать, но GKSession автоматически использует Bluetooth, если нет покрытия Wi-Fi. Учитывая, что для работы с Wi-Fi вам понадобится большая часть кода для GKSession в вашем проекте, я думаю, что легче забыть о peerPickerController, если только вам не нужен только Bluetooth.

В конце концов Apple обязательно добавит необходимые методы и свойства в peerPickerController для обработки Wi-Fi, но на данный момент вам нужен GKSession.

Надеюсь, это поможет.

...