单击java libgdx直接拍摄对象

单击java libgdx直接拍摄对象,java,libgdx,Java,Libgdx,我试图让我的玩家射出一个咒语,它会移动到玩家点击的地方。我可以通过执行以下操作轻松实现这一点 if(position.x >= destination.x - 1 && position.x <= destination.x + 1) reachedX = true; if(position.y >= destination.y - 1 && position.y <= destination.y + 1)

我试图让我的玩家射出一个咒语,它会移动到玩家点击的地方。我可以通过执行以下操作轻松实现这一点

    if(position.x >= destination.x - 1 && position.x <= destination.x + 1)
        reachedX = true;
    if(position.y >= destination.y - 1 && position.y <= destination.y + 1)
        reachedY = true;

如果(position.x>=destination.x-1&&position.x=destination.y-1&&position.y在第一张图片中,咒语看起来会旋转45°,直到到达正确的x坐标。这听起来好像x和y速度相等,无论目的点在哪里。
相反,你应该有一个方向,并根据这个方向确定一个x和y速度。
为此,您首先需要获得积分,玩家正在单击。
因此,您可以实现
InputProcessor
,并且它是
接地(int-screenX、int-screenY、int-pointer、int-button)

screenX
screenY
参数以屏幕坐标(像素)给出,因此需要转换为您的世界坐标。这可以使用
摄像机或
视口来完成,并且
将其取消投影(Vector2 screenCoords)
。此方法返回一个
矢量2
,给出世界坐标。
现在,您需要找出您与单击点之间的方向
Vector2
。方向
Vector
的计算如下:

new Vector2(otherPos.x - myPos.x, otherPos.y - myPos.y).nor();
这将返回两点之间的标准化方向
向量


现在,你只需要在x方向上移动
dir.x*spellSpeed*delta
,在y方向上移动
dir.y*spellSpeed*delta
,它应该与你的第二张图片中的一样。

你能发布类定义和位置和目的地声明吗?