如何在一段时间内制作一些东西

时间:2017-07-12 19:24:13

标签: java

我试图在一段时间内“伸展”一段时间,即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秒钟内“拉长”,那就更好了。 是否有人可以帮助我?

1 个答案:

答案 0 :(得分:0)

你可以让它睡眠1000毫秒/秒。如果用户设置 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();
     }
}