2个坐标之间的随机鼠标移动?

问题描述

我和我的朋友制作了一个游戏,我们正在尝试为它创建一个机器人。

它一遍又一遍地重复相同的动作。但是鼠标总是沿着相同的路径从 A 点到 B 点。

有没有办法让鼠标从 A 点移动到 B 点,并且不让它使用相同的路径?

这是机器人的代码

// import the robotjs library
var robot = require('robotjs');

function main() {
    console.log("Starting...");
    sleep(4000);

    // basic infinite loop
    while (true) {
        robot.moveMouse(764,557);
        robot.mouseClick();
        robot.moveMouse(356,432);
        sleep(8000);
    }
}

function sleep(ms) {
    Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),ms);
}

main();

我是编码新手,所以请怜悯;)

解决方法

给你:

const robot = require("robotjs")

const START = [764,557]
const END = [356,432]
const loops = 100

robot.setMouseDelay(0)

const getRandom = (min,max) => {
    return Math.floor(Math.random() * (max - min + 1) + min);
}

const go = (coord) => {
    return new Promise((resolve) => {
        robot.moveMouseSmooth(getRandom(END[0],START[0]),getRandom(END[1],START[1]),1)
        robot.moveMouseSmooth(coord[0],coord[1],1)
        resolve()
    })
}

const recurse = async (loops) => {
    for (let i = 0; i < loops; i++) {
        await go(START)
        console.log("click") // Insert clicking action here,for single left mouseclick just use,robot.mouseClick() 
        await go(END)
    }
} 

recurse(loops)