Java在直线/矢量上移动一个对象

时间:2016-02-21 11:37:58

标签: java object libgdx line move

(我在libgdx工作,我的箭头是多边形) 我有一些编程问题。我目前正在游戏中使用关卡编辑器,我已经走得很远,但现在我遇到了扩展问题。我正在使用8个箭头。图片如下。

enter image description here

我想拖动箭头,或者在方向上徘徊一个巨大的正方形,在一条直线上。 (橙线)。每个箭头都有一个方向。箭头应该缩放绿色方块。

enter image description here

我的代码如上所示,如下所示:

public void onDragged(int prevX, int prevY, int cX, int cY) {
    super.onDragged(prevX, prevY, cX, cY);
    int dX = cX - prevX;
    int dY = cY - prevY;
    int pX = x;
    int pY = y;

    Vector2f vector = new Vector2f((float) Math.cos(directionAngle + Math.PI / 2), (float) Math.sin(directionAngle + Math.PI / 2));

    float sum = new Point2f(prevX, prevY).distance(new Point2f(cX, cY));

    x += sum * Integer.signum(dX) * vector.x;
    y -= sum * Integer.signum(dY) * vector.y;
    polygon.setPosition(x, y);
    gui.onArrowDragged(getID(), pX, pY, x, y);
}

这个解决方案在方块一侧的4个箭头上工作得非常好,但我的问题是,在其他方面,我仍然可以向任何方向移动箭头,而不是方向向量。

0 个答案:

没有答案