如何使对象跟随鼠标(java)
我需要帮助,让这个程序中的圆不断跟随鼠标的x和y坐标。它确实在某些点上跟随鼠标。我想这是因为我在程序中使用了两个坐标之间的斜率。这个问题的一个例子是,如果我在鼠标x位置的右边,它将朝着完全相反的方向移动,并远离鼠标。有人能给我一些指导吗 ObjectMove类如何使对象跟随鼠标(java),java,Java,我需要帮助,让这个程序中的圆不断跟随鼠标的x和y坐标。它确实在某些点上跟随鼠标。我想这是因为我在程序中使用了两个坐标之间的斜率。这个问题的一个例子是,如果我在鼠标x位置的右边,它将朝着完全相反的方向移动,并远离鼠标。有人能给我一些指导吗 ObjectMove类 import java.awt.*; import hsa.LASSConsole; public class ObjectMove { static LASSConsole c; // The output
import java.awt.*;
import hsa.LASSConsole;
public class ObjectMove
{
static LASSConsole c; // The output console
public static void main (String[] args) throws java.lang.InterruptedException
{
c = new LASSConsole ();
double xcoord = c.maxx () / 2;
double ycoord = c.maxy () / 2;
double mouseX;
double mouseY;
double vely;
double velx;
double m;
int d = 20;
while (true)
{
mouseX = c.GetMouseX ();
mouseY = c.GetMouseY ();
m = ((mouseY - ycoord) / (mouseX - xcoord));
if (((mouseX - xcoord) / -1) == (mouseX - xcoord) / (mouseX - xcoord))
{
velx = -1;
}
else
{
velx = 1;
}
if (((mouseY - ycoord) / -1) == (mouseY - ycoord) / (mouseY - ycoord) && velx == -1)
{
vely = -m;
}
else if ((((mouseY - ycoord) / -1) == (mouseY - ycoord) / (mouseY - ycoord)) && velx == 1)
{
vely = m;
}
else if ((((mouseY - ycoord) / -1) != (mouseY - ycoord) / (mouseY - ycoord)) && velx == -1)
{
vely = -m;
}
else if (mouseX - xcoord == 0)
{
if (mouseY > ycoord)
{
vely = 1;
velx = 0;
}
else
{
vely = -1;
}
}
else
{
vely = m;
}
c.setColor (Color.black);
xcoord = xcoord - velx;
ycoord = ycoord - vely;
c.fillOval ((int) xcoord, (int) ycoord, (int) d, (int) d);
Thread.sleep (100);
c.setColor (Color.white);
c.fillOval ((int) xcoord, (int) ycoord, (int) d, (int) d);
}
} // main method
} // ObjectMove class
`
我不确定我是否完全理解了你的要求,但如果你需要鼠标的精确坐标,并将它们应用到圆对象的x和y上,这里有一个很好的答案:问题是为了让对象跟随我的鼠标,类似于Agar.io,它需要使用两组坐标。我在这方面遇到了麻烦。我的程序已经确定了坐标。