我基本上要做的是一个平台游戏,你可以通过越过敌人等进入阶段。当你前进并拾取东西时,你会得到不同的武器。我希望你能拿到这些不同的武器,以便能够指向鼠标当前的方向。
由于它有点难以正确示例,我发现了一个视频,几乎可以显示我想要的内容,但使用了不同的精灵。 http://www.youtube.com/watch?v=8W7WSkQq5SU
所以,让我们说这是我用于其中一种武器的图像:
我如何调整它(伪代码)以使镐的正确位置指向鼠标的相同方向?
我只是在寻找一些伪代码,说明如何以最有效的方式和最顺畅的方式实现这一目标。
答案 0 :(得分:4)
如果您使用的是Java Graphics2D
,那么您必须使用AfflineTransform
。要做到这一点,首先要转换到镐轴的点。然后你可以按照鼠标的方向旋转,可以使用atan2
找到。然后你绘制轴,使偏移与轴点匹配。
伪代码:
#function drawAxe:
translate(player.x, player.y);
translate(pickaxis.x, pickaxis.y);
rotation=toDegrees(atan2(mouse.y-player.y,mouse.x-player.x));
rotate(roation);
translate(-axisPointOnPickaxe.x, -axisPointOnPickaxe.y);
drawImage(pickaxe.texture);
IdentityMatrix();//[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]] or no transformation. i think you have to set a blank transform to do this in java efficiently
#endFunction drawAxe