繁体   English   中英

我如何使某物在一定时间内伸展

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM