Я разрабатываю игру Super Mario для Android. Я пытаюсь следовать шаблону MVC.
Ядро программы состоит из:
- класс, представляющий модель с именем
World
. - класс, представляющий представление с именем
Renderer
и - класс для контроллера с именем
TouchInput
.
Каждый тик сначала вызывается метод обновления Worlds, который, в свою очередь, вызывает методы обновления всех объектов предметной области (марио, гумбы, бонусы). Затем вызывается метод рисования визуализатора, который запрашивает состояние модели и объектов предметной области и отображает их на экране.
Теперь я хочу добавить класс звука. Звуки запускаются событиями объекта домена, например: столкновение марио с врагом. Означает ли это, что объекты предметной области модели должны напрямую вызывать методы звукового класса? Означает ли это, что я должен заставить все объекты домена следовать наблюдаемому шаблону, а класс звука подписываться на их события? Не могли бы вы подсказать, какой подход мне следует использовать, чтобы мой дизайн стал правильным?