Я пишу 2D-игру с боковой прокруткой для Android и пытаюсь реализовать своего рода движение резиновых полос / упругих камер, которое следует за персонажем игрока вверх и вниз.
Например, допустим, что нормальное состояние экрана таково, что символ всегда центрирован вертикально. Если персонаж прыгает, «камера» следует за персонажем, сначала вверх, когда он поднимается, затем вниз, когда он падает.
Я выполнил это, используя canvas.translate(x,y)
с кодом, подобным следующему:
drawBackground();
canvas.save();
canvas.translate(0, canvasHeight/2 - player.y);
drawPlayer();
canvas.restore();
Однако это выглядит неестественно, поскольку не учитывает скорость, поэтому независимо от того, насколько быстро персонаж поднимается или опускается, экран всегда ориентирован на него. Я пытался использовать какие-то переменные скорости холста, но я не могу понять это правильно. Я хочу, чтобы камера оставалась центрированной на игроке, если он неподвижен, но когда он прыгает, камера должна немного «отставать» от него и пытаться наверстать упущенное.
Может кто-нибудь дать мне несколько советов, как мне это сделать? Пожалуйста, будьте как можно точнее!
Спасибо