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)), 0, 0, ms);
}

main();

我是编码新手,所以请多多包涵;)

4

1 回答 1

0

干得好:

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)
于 2021-03-16T19:27:13.957 回答