[英]How do I make something stretch over a certain period of time
我正在尝试在特定时间段(即1秒)内“拉伸”动作。
public static int i = 0;
public static void click() {
Robot robot;
try {
robot = new Robot();
for (i = i; i < cps; i++) {
robot.mousePress(InputEvent.BUTTON1_MASK);
Random rn = new Random();
int range = cps - 10 + 1;
int randomNum = rn.nextInt(range) + 10;
robot.delay(randomNum);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
i++;
}
if (i == cps) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
i = 0;
}
} catch (AWTException e) {
e.printStackTrace();
}
}
如您所见,这是“简单”自动答题器的代码。 它在此计时器内运行。
public static void getClick() {
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
while (enabled) {
click();
}
}
}, 1, 1);
}
是否可以通过任何方式使此操作“拉伸”到1秒。 我真的不希望它单击12次(示例),然后暂停1秒钟。 如果这12次点击在1秒钟内“拉伸”,那就更好了。 有没有人可以帮助我?
您可以让它休眠1000ms / cps。 如果用户将cps = 10设置为10,则Thread.sleep(1000/cps)
将使其在一秒钟内单击十次。 在cps = 0.5的情况下 ,它将在两秒钟内单击一次。
(有一点点差异,因为您的代码需要时间才能执行)。 而且您不应该在循环中创建随机对象。
Random rn = new Random();
while(true) {
robot.mousePress(InputEvent.BUTTON1_MASK);
int range = cps - 10 + 1;
int randomNum = rn.nextInt(range) + 10;
robot.delay(randomNum);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
i++;
try {
Thread.sleep(1000/cps);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.