Пятница, 08 Ноября 2024, 18:00

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Как добавить здоровье игрокам в примере NetworkDemo от yoyo?
InitroДата: Четверг, 04 Декабря 2014, 13:32 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Привет всем, помогите очень срочно надо это реализовать в мультиплеере!
Вот скачал ихний пример все понял как работает, но одно не понимаю как игрокам добавить здоровье, если для клиентов спрайт игрока только один, соответственно и объект один
Помогите реализовать здоровья игрокам, все перерыл, не нашел ответа, иначе бы сюда не писал бы sad .

Буду благодарен, если поможете! respect
Fill_FreemanДата: Четверг, 04 Декабря 2014, 13:56 | Сообщение # 2
почетный гость
Сейчас нет на сайте
Насколько я помню, на сервере для каждого клиента создается экземпляр клиентского объекта. Соответственно в нем здоровье и хранить.

InitroДата: Четверг, 04 Декабря 2014, 17:40 | Сообщение # 3
почетный гость
Сейчас нет на сайте
Fill_Freeman, Да, но еще раз напомню, что один спрайт(объект) для всех клиентов
и как определить какой именно объект принадлежит клиенту( чтобы отнимать здоровье), я не знаю


Сообщение отредактировал Initro - Четверг, 04 Декабря 2014, 17:41
KwantДата: Четверг, 04 Декабря 2014, 18:11 | Сообщение # 4
почетный гость
Сейчас нет на сайте
NetworkDemo от yoyo у меня нет, но тут, в целом, всё просто.

На сервере заводишь каждому соединению-клиенту свой ID.
Как только кто-то подключился, ты создал ID, создал игровой объект, привязал к игровому объекту его ID и ещё послал клиенту в ответ какой у него ID - там тоже привязать его надо к объекту.
Теперь у тебя игровой объект существует на сервере и с HP, и с его уникальным ID, как и на клиенте.

Осталось только реализовать обработку сообщений на клиенте:
1.Принять пакет
2.Разобрать пакет
3.В пакете должен быть ID и уровень HP
4.Найти объект с этим ID
5.Обновить его HP

Ну и последние, что нужно бы понимать, что пакеты разные, а приходят все в одно место, чтобы разделить логику их обработки нужно как то Классифицировать эти, самые, пакеты - это значит, что нужно им тоже завести свои идентификаторы, но они уже буду обозначать то, какое событие произошло (подключение, обновление HP, смерть игрока и тому подобное).

Структура пакета будет, примерно, такой:
[PID, UID, <data>]

Где:
PID - идентификатор события
UID - идентификатор игрового объекта
<data> - твои, любые, данные

Для рассылки здоровья будет так:
[2, 1, hp] - Тип пакета: 2 - обновление здоровья; для игрового объекта 1, уровень здоровья: hp

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


Сообщение отредактировал Kwant - Четверг, 04 Декабря 2014, 18:19
InitroДата: Четверг, 04 Декабря 2014, 18:26 | Сообщение # 5
почетный гость
Сейчас нет на сайте
Kwant, Спаибо!, но все же есть ли кто поможет именно с этим примером?

Сообщение отредактировал Initro - Четверг, 04 Декабря 2014, 18:30
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг