Одна из возможностей для логики такова:
- Создайте слушателя и прикрепите его к вашему персонажу (прямо или косвенно в зависимости от вашего дизайна).Слушайте движения персонажа или изменения положения.
- Непосредственно означает, что у вашего класса персонажа есть метод
addListener
. - Косвенно означает, что ваш класс персонажа отправляет события в глобальную шину событий, с помощью которой слушатели регистрируются для получения событий определенных типов.
- Рассчитайте положение камеры на основеположение персонажа и отцентрируйте его соответственно.Это потребует небольшой математики!
Реализуя это с помощью системы событий, вы можете легко отделить логику, которая центрирует камеру, от логики, которая перемещает персонажа.Таким образом, вы можете перемещать клавиши со стрелками или использовать щелчок для перемещения, и логика камеры не изменится.
Извините, я не могу предоставить общую помощь по фактическим вызовам Java 2D и Canvas
, которые могут вам понадобитьсячтобы сделать, но я надеюсь, что широкий пример того, как можно это сделать, помогает!