Думая об общей игре, не имеет значения тип игры, очень вероятно, что нам нужен какой-то тип камеры. Например:
- Камера отладки: управляется клавиатурой и мышью, благодаря чему мы можем перемещаться в любом месте нашей сцены.
- Сценарий камеры: с этим мы можем дать команду камере двигаться по определенному пути.
- Камера плеера.
- ...
Каждый из этих типов камер имеет свою функцию обновления. Самая простая (и плохая) система - это иметь класс диспетчера камер с общей функцией обновления и специализированными функциями обновления для каждого типа камеры. Внутри общей функции обновления у нас есть оператор switch, который в зависимости от типа камеры вызывает соответствующую функцию обновления.
Вместо этого я подумал о другом подходе: шаблон стратегии. Мы перемещаем каждое поведение камеры (метод обновления) в соответствующий класс, который реализует общий интерфейс. В диспетчере камеры у нас есть член к этому интерфейсу, и мы можем динамически устанавливать любое поведение, которое мы хотим.
Что ты об этом думаешь? Какие еще системы вы мне предлагаете? Спасибо.
Дополнительная информация: есть реальная возможность, что мне нужно более одной активной камеры, например, для отражений. Короче говоря, я должен учитывать и это.