Камера, предотвращающая правильное вращение игрока лицом к мыши

В настоящее время я работаю над 2D-игрой, и я хочу, чтобы игрок мог свободно перемещаться по миру и всегда "смотреть / смотреть" на мышь. Чтобы реализовать это, я сделал камеру, которая переводит все относительно игрока:

x = (player.getX()+(player.getWidth()/2)) - game.getWidth()/2;
y = (player.getY()+(player.getHeight()/2)) - game.getHeight()/2;

g2d.translate(-camX, -camY);
//render everything(including player)
g2d.translate(camX, camY);

затем при рендеринге игрока я вычисляю вращение:

g2d.rotate(Math.atan2(playerCenterY - mouseY, playerCenterX - mouseX) - Math.PI / 2 , playerCenterX , playerCenterY );
//draw player
g2d.rotate(-Math.atan2(playerCenterY - mouseY, playerCenterX - mouseX) - Math.PI / 2 , playerCenterX , playerCenterY );

Это работает отлично, но как только игрок переместился (заставляя камеру двигаться), он больше не работает, и я понятия не имею, почему. Любые мысли будут с благодарностью.

0 ответов

Другие вопросы по тегам