如何通过坐标使对象从一个点移动到另一个点?

时间:2017-01-29 17:07:36

标签: java 2d

我目前有一个2D游戏,我试图按照某些坐标移动.png图像。如果我将此对象放在(0,0)然后尝试移动到(500,500),我可以执行以下操作:

public void move() {
    if (x < 500) {
        x += velocityX;
    }
    if (y < 500) {
        y += velocityY;
    }
}

这可行,但仅仅因为它是完美的对角线。使用该系统,我只能水平,垂直或对角移动对象,但从不介于两者之间。如果我尝试这样的话:

public void move() {
    if (x < 500) {
        x += velocityX;
    }
    if (y < 400) {
        y += velocityY;
    }
}

物体将以完美的对角线移动,直到在y轴上达到400,它将水平移动,最后一位在x轴上达到500。我如何制作它以便我可以在追踪直线路径时将对象移动到任何坐标?

1 个答案:

答案 0 :(得分:0)

要在窗口中对角线移动完美,您必须确保velocityX和velocityY`的比例应该是这样的,

 velocityX         width
-----------  =  -----------
 velocityY         height

如果width为500,height为400且velocityX为5,那么

 velocityY should be 4