嘿,我想知道是否有人可以帮助我进行模拟鼠标移动事件,而我一直试图模拟鼠标从窗口内部宽度和高度到画布上对象x,y位置的移动。我可以得到对象的位置,但是当我尝试模拟鼠标从窗口中心移动到对象时,它距离对象的位置很远,为什么会发生这种情况呢?
function moveMouse(x, y) {
var centerX = window.innerWidth / 2;
var centerY = window.innerHeight / 2;
document.dispatchEvent(new MouseEvent("mousemove", {
clientX: centerX + x,
clientY: centerY + y
}));
}
function getObj() {
var obj = Game.currentGame.world.localPlayer.entity;
return obj
}
var obj = getObj();
var objPosition = {
x: obj.fromTick.position.x,
y: obj.fromTick.position.y
}
console.log(objPosition) // works
moveMouse(objPosition.x, objPosition.y)
对不起,美巴德英语
答案 0 :(得分:0)
如果objPosition.x, objPosition.y
是对象在画布上相对于画布左上角的坐标,则您的mouseMove()
函数应将x, y
添加到顶部对象的坐标,画布的左上角,而不是窗口中心的坐标。
您可以使用canvas.getBoundingClientRect()获取画布的坐标。
或者,如果objPosition.x, objPosition.y
是对象相对于窗口左上角的绝对坐标,则直接将mouseMove()
直接指向它们。