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

Java 如何通过坐标使对象从一点移动到另一点?,java,2d,Java,2d,我目前有一个2d游戏,在其中我试图移动一个.png图像以下的特定坐标。如果我将此对象放置在(0,0)的位置,然后尝试移动到(500500),我可以执行以下操作: public void move() { if (x < 500) { x += velocityX; } if (y < 500) { y += velocityY; } } 公共作废移动(){ 如果(x

我目前有一个2d游戏,在其中我试图移动一个.png图像以下的特定坐标。如果我将此对象放置在(0,0)的位置,然后尝试移动到(500500),我可以执行以下操作:

public void move() {
    if (x < 500) {
        x += velocityX;
    }
    if (y < 500) {
        y += velocityY;
    }
}
公共作废移动(){
如果(x<500){
x+=速度x;
}
如果(y<500){
y+=速度y;
}
}
这是可行的,但只是因为它是一条完美的对角线。使用该系统,我只能水平、垂直或对角移动对象,但不能在两者之间移动。如果我试着做以下事情:

public void move() {
    if (x < 500) {
        x += velocityX;
    }
    if (y < 400) {
        y += velocityY;
    }
}
公共作废移动(){
如果(x<500){
x+=速度x;
}
如果(y<400){
y+=速度y;
}
}

对象将以完美的对角线角度移动,直到它在y轴上达到400,它将水平移动,最后一位在x轴上达到500。我怎样才能在沿着直线移动的同时将对象移动到任何坐标?

要在窗口中沿对角线完美移动,必须确保
velocityX
和velocityY`的比率如下所示

 velocityX         width
-----------  =  -----------
 velocityY         height
在您的情况下,如果
宽度
为500,
高度
为400,如果
速度x
为5,则

 velocityY should be 4

要在窗口中沿对角线完美移动,必须确保
velocityX
和velocityY`的比率如下所示

 velocityX         width
-----------  =  -----------
 velocityY         height
在您的情况下,如果
宽度
为500,
高度
为400,如果
速度x
为5,则

 velocityY should be 4

算术。计算出希望对象移动的距离(在每个轴上);将距离除以所需的步数;分别添加到x和y。@khelwood步数?步数是指在旋转多少圈后,您希望图像处于顶部。算术。计算出希望对象移动的距离(在每个轴上);将距离除以所需的步数;分别添加到x和y。@khelwood步数?步数表示您希望图像处于顶部的圈数。这在
velocityX=5
velocityY=4
时有效,但是当
velocityX=2
velocityY=1.6
时就不是了,尽管它是完全相同的比率,并且是该方程的结果。
4
int
,而
1.6
float
。将所有相关变量设置为
float
,这样它就可以正常工作。当
velocityX=5
velocityY=4
时,它就可以正常工作,但是当
velocityX=2
velocityY=1.6
时就不是了,尽管它是完全相同的比率,并且是该方程的结果。
4
int
,而
1.6
float
。将所有相关变量设置为
float
,这样它就可以正常工作。