我正在开发一款游戏,玩家控制一艘宇宙飞船,该飞船围绕中心点按时钟/逆时针方向旋转,同时从该点发射射弹。我把所有的东西都写好了,虽然实际的位置有点偏离并且旋转不起作用。
对于运动,我有:
if (code==KeyEvent.VK_LEFT) {
trans.setToIdentity();
trans.translate(player.x-10, player.y-10);
player.moveLeft();
//trans.rotate(?)
System.out.println(player.x + " " +
player.y + " " + player.dX + " " + player.dY);
}
trans
AffineTransform在哪里,player.moveLeft()
将玩家的坐标更改为圆上的一个点(按预期工作,使用 sin/cos/theta,简单触发)。当我用它绘制一个对象时,Graphics2D
它会跟随坐标,但是当我使用导入的图像时,它会跟随几个(~25)像素。由于我有一个角度、x、y 和半径,我可以使用什么来AffineTransform
围绕其中心点旋转图像并让它始终面向中心点?