Беда с графикой 2d перевода и вращения - PullRequest
0 голосов
/ 18 мая 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 );   

Вот некоторые изображения, где выделенная стрелка - это место, где находится мышь. (сторона куба должна быть обращена к мошу, а не к углу)

Вот как это должно выглядеть (до того, как камера начнет двигаться):

https://i.stack.imgur.com/UQI6G.png

это то, на что это похоже, когда id больше не работает (после того, как камера перевела:

https://i.stack.imgur.com/J9BKb.png

...