Камера, предотвращающая правильное вращение игрока лицом к мыши - PullRequest
0 голосов
/ 17 мая 2018

В настоящее время я работаю над 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 );

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

...