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