Как Кирилл указал в своем комментарии, ответ выше не является правильным.
Чтобы добиться простой прокрутки камеры, вам нужно
- Переведите свой холст в обратные координаты положения игрока
- Нарисуйте фон
- Перевести обратно на (0,0)
- Нарисуй игрока
Итак, чтобы поместить это в код
//Translate to -playerX, -playerY and draw the background
canvas.translate(-playerX, -playerY);
background.draw();
//Translate back to 0,0 and draw the player
canvas.translate(playerX, playerY);
player.draw();
Таким образом, игрок всегда остается на одной и той же позиции на экране, и вы увидите, что фон движется за ним.
Следует отметить, что canvas.translate (x, y) не переводит холст в координаты (x, y). Он переводится на указанное расстояние. Поначалу это может сбить с толку.
Пример:
- Вы на (0,0)
- Вы называете canvas.translate (2,3)
- Вы вызываете canvas.translate (-1, -1)
- Вы сейчас на (1, 2)