Axel_User
@Axel_User
Студент 2 lvl-а

Как связать модель и вид персонажа в игре?

Проект не совсем игровой, но визуальная часть очень походит на игру в жанре рпг. В общем суть: есть процесс, у процесса есть ресурсы и потоки, у потоков есть список команд. Как только поступает запрос на выполнение команды, спрайт потока должен пройти к спрайту ресурса. Как только он на месте, начинается "майнинг" ресурса. После окончания "майнинга" поток переходит к выполнению следующих команд, либо самовыпиливается. Это в общих чертах работа модели. Есть ещё контроллеры, которые должны перемещать спрайты на canvas в зависимости от того, что делает поток.
Как мне в этом случае организовать связь модели и вида через контроллер? С помощью событий? Например будет вызываться событие, когда поток подошёл к ресурсу, событие когда поток закончил "майнить", на это всё навесить соответствующие функции контроллера (например перемещение от ресурса к ресурсу). Мне кажется что я что-то делаю неправильно, кто-то может подсказать, в какую сторону рыть?
  • Вопрос задан
  • 2456 просмотров
Решения вопроса 1
Lerg
@Lerg
Defold, Corona, Lua, GameDev
Каждый персонаж - это класс/объект, причем самодостаточный, никакие внешние контроллеры не должны на прямую изменять его внутреннее состояние.
У каждого объекта есть закреплённый спрайт или набор спрайтов за ним.
Также у всех объектов есть метод update(), по которому отрисовывается/обновляется спрайт на canvas.
Объекты взаимодействуют с окружающим миром и друг с другом через события.
Каждый объект может чувствовать окружение - collision detection в непосредственной близости для осезания и на каком-то радиусе для зрения.
Внешний контроллер отдаёт только команды вашим персонажам, задаёт цели, которые они должны выполнять.
Может задать сразу список целей, которые выполняются по очереди.

На JavaScript игры не делал, но принципы везде одни и те же.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы