我想根据玩家手臂的旋转来拍摄一个物体(咒语)。这个咒语应该是从手中出来并射向鼠标所在的地方(手臂旋转并指向鼠标的位置)。这是手臂在游戏中旋转的方式。在libgdx中基于手臂旋转的拍摄对象java
public boolean mouseMoved(int screenX, int screenY) {
tmp.x = screenX;
tmp.y = screenY;
tmp.z = 0;
cam.unproject(tmp);
rot = MathUtils.radiansToDegrees * MathUtils.atan2((float)tmp.y - (float)player.getArmSprite().getY() - player.getArmSprite().getHeight(),
tmp.x -player.getArmSprite().getX() - player.getArmSprite().getWidth());
if (rot < 0) rot += 360;
//Last right or left means if hes looking left or right
if(player.lastRight)
player.setObjectRotation(rot + 80);
if(player.lastLeft)
player.setObjectRotation(-rot - 80);
这是法术应该如何拍基于脱旋转
//destination is a vector of where on screen the mouse was clicked
if(position.y < destination.y){
position.y += vel.y * Gdx.graphics.getDeltaTime();
}
if(position.x < destination.x){
position.x += vel.x * Gdx.graphics.getDeltaTime();
}
然而,这是非常靠不住的,从来没有真正反应也应该有一些例外的方式。它从手中发射,然后如果y轴相等,它完全平均并且一直到它到达x位置,我希望它从手中发射到从点a到点b完全直线的位置,这很清楚一个旋转问题,我似乎无法弄清楚如何解决。
这里是发生了什么事
的图像的红色显示我点击,你可以看到它首先到达X位置,现在正行驶到Y,当它应该已经达到我首先点击的x和y位置
对此问题的任何帮助都非常感谢!
目前还不清楚你有什么问题。 “won and,从不真实地反应它应该怎样”是什么意思?请更具体一些,比如“它只是中途移动”或“手臂绕着一圈旋转并将屏幕弹出到用户的鼻子中” –
@RyanBemrose我编辑它 – Temo