我正在制作一款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 );
这里有一些图像,突出显示的箭头是鼠标所在的位置。 (立方体的一侧应朝向mosue,而不是角落)
它应该是这样的(在相机移动之前):
这就是当id不再起作用时的样子(在相机翻译后: