Любой пример проекта, показывающий, как использовать gamekit (модель сервер-клиент) БЕЗ (!) GKPeerPickerController и более двух устройств?

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

  • только блютуз (добро для другого проекта)
  • более 2-х устройств (по возможности)
  • серверная клиентская модель (как заставить работать)
  • отправлять / получать данные
  • сервер может решить, является ли он «видимым» для других «потенциальных» клиентов
  • показать в табличном представлении "обнаруженные" устройства -> если пользователь нажимает на ячейку табличного представления (имя устройства, например, "iPod Touch Тома"), оно будет объединено в пару, но другой пользователь должен принять соединение (UIAlertView) и если он примет, они разделятся на пары
  • показать всех подключенных пиров (подключенных к серверу) в uitableview
  • выгнать одних пиров (только сервер может пнуть других) (это должно быть легко реализовать. просто отправьте клиенту специальный пакет со строкой, которая гласит: «УДАР САМ», тогда он сам себя пинает)
  • пригласить других клиентов (в поиске) (на самом деле это не нужно, но было бы круто):
  • позвольте клиентам / серверу перемещать объекты (физические объекты в box2d (cocos2d)), и тогда каждый клиент должен показывать точно такое же моделирование на экране.

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

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

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

cocos2dbeginner


person cocos2dbeginner    schedule 07.05.2011    source источник


Ответы (3)


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

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

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

Здесь, здесь, здесь и здесь - ссылки на другие примеры работы с Bonjour. Пока вы не выполняете сложные задачи с сокетами, мне лично нравится это, это делает вещи очень простыми.

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

person slycrel    schedule 27.05.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 для просмотра списка.

person zeiteisen    schedule 25.05.2011
comment
не могли бы вы перечислить еще много полезных руководств в высоком качестве? - person cocos2dbeginner; 26.05.2011
comment
Мой английский недостаточно хорош, чтобы понять, что означает ваш комментарий. - person zeiteisen; 26.05.2011
comment
не могли бы вы опубликовать эти уроки? Я думаю, вы можете немецкий;): Kannst du diese nützlichen Tutorials zu deiner Antwort ergänzen? - person cocos2dbeginner; 26.05.2011
comment
но есть только один, который соответствует некоторым из моих запросов: / :( - person cocos2dbeginner; 26.05.2011

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

picker.connectionTypesMask = GKPeerPickerConnectionTypeOnline | GKPeerPickerConnectionTypeNearby;

Затем, если они выберут Wi-Fi, используйте код из проекта GKRocket в библиотеке примеров кода iOS. Если они выберут Bluetooth, используйте GKTank.

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

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

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

person Tim    schedule 17.06.2013