Проект не совсем игровой, но визуальная часть очень походит на игру в жанре рпг. В общем суть: есть процесс, у процесса есть ресурсы и потоки, у потоков есть список команд. Как только поступает запрос на выполнение команды, спрайт потока должен пройти к спрайту ресурса. Как только он на месте, начинается "майнинг" ресурса. После окончания "майнинга" поток переходит к выполнению следующих команд, либо самовыпиливается. Это в общих чертах работа модели. Есть ещё контроллеры, которые должны перемещать спрайты на canvas в зависимости от того, что делает поток.
Как мне в этом случае организовать связь модели и вида через контроллер? С помощью событий? Например будет вызываться событие, когда поток подошёл к ресурсу, событие когда поток закончил "майнить", на это всё навесить соответствующие функции контроллера (например перемещение от ресурса к ресурсу). Мне кажется что я что-то делаю неправильно, кто-то может подсказать, в какую сторону рыть?
Каждый персонаж - это класс/объект, причем самодостаточный, никакие внешние контроллеры не должны на прямую изменять его внутреннее состояние.
У каждого объекта есть закреплённый спрайт или набор спрайтов за ним.
Также у всех объектов есть метод update(), по которому отрисовывается/обновляется спрайт на canvas.
Объекты взаимодействуют с окружающим миром и друг с другом через события.
Каждый объект может чувствовать окружение - collision detection в непосредственной близости для осезания и на каком-то радиусе для зрения.
Внешний контроллер отдаёт только команды вашим персонажам, задаёт цели, которые они должны выполнять.
Может задать сразу список целей, которые выполняются по очереди.
На JavaScript игры не делал, но принципы везде одни и те же.
Большое спасибо, поправлю. А ещё можно вопрос, нормально ли если создаю события через jquery? Именно нормально ли то, что объявляю поле OnCreate и в нем прописываю функцию jquery с указанием на сам объект? ( $(self).on (....) например) Вроде этот метод у jquery и так добавляет свои поля в объект?