【发布时间】:2012-02-23 15:10:30
【问题描述】:
我需要制作这些数组,因为我试图让鼠标从第一个点滑到第二个点,从第二个点滑到第三个点,等等......每次滑行应该分为 25 个步骤并花费 1000 毫秒。
我不知道如何确切地启动该方法。
public void glide(int [] x, int [] y) 我什至怀疑我是否正确设置了此方法。 我真的不知道如何启动这个方法。
【问题讨论】:
我需要制作这些数组,因为我试图让鼠标从第一个点滑到第二个点,从第二个点滑到第三个点,等等......每次滑行应该分为 25 个步骤并花费 1000 毫秒。
我不知道如何确切地启动该方法。
public void glide(int [] x, int [] y) 我什至怀疑我是否正确设置了此方法。 我真的不知道如何启动这个方法。
【问题讨论】:
更好的方法是使用多维数组来存储您的值。这是一个例子:
public void glide(int[][] points)
{
// ...
}
int[][] p = new int[25][25];
// assign points
glide(p);
【讨论】:
这个方法需要两个数组作为parameters。因此,要使用 glide 方法,您应该已经编写了两个数组。在 Java 中,您可以通过以下方式创建数组:
private int[] x-coords = new int[SIZE] // SIZE is how many elements will be in the array
private in[] y-coords = new int[SIZE] // They should be the same if you're using them as coordinates
然后使用你会说的滑行方法
glide(x-coords,y-coords);
现在就编写该方法而言....它将取决于很多事情,如果您显示更多代码,那将有很大帮助。本质上你想要做的是:
public void glide(int[] x, int[] y) {
// Standard loop to iterate through all the elements of the x array
for(int i=0; i<x.length; i++) {
// This moves the pointer
mouseMove(x[i],y[i]);
// This pauses
try {
Thread.sleep(1000);
} catch(InterruptedException e) {}
}
}
现在这一切所做的就是每 1000 毫秒移动一次鼠标(希望是小幅度的)。你分解坐标的方式不是最有效的方式(为什么在代码中使用数组而不是使用数学),但它会以这种方式工作。只需要你更多的数学而不是计算机。基本上你想从坐标 (x[0],y[0]) 滑到 (x[24],y[24])。所以起点将是数组中的第一个点,终点是数组中的最后一个点。然后,中间的每个数字都应该移动它需要移动的量。
How to move a mouse smoothly throughout the screen by using java? 中提出的方式将是最有效的方式。他所做的只是让计算机进行数学运算,而不是使用数组,他只是输入了起点和终点。您应该阅读并尝试尽可能地理解该代码。
【讨论】: