我正在尝试写一个脚本,将旋转我的角色在游戏中180度,同时按住lctrl和右键单击。此脚本可以工作,但由于休眠计时器的原因,它需要花费很长时间才能旋转:
EnablePrimaryMouseButtonEvents(true)
function OnEvent(event, arg)
if (event == "MOUSE_BUTTON_PRESSED" and arg == 2 and IsModifierPressed("lctrl")) then
for i = 0, 96 do
MoveMouseRelative (125,0)
Sleep (1)
end
end
end
如果我增加MouseMoveRelative超过125,它开始向错误的方向移动鼠标。无论我使用什么值(我尝试了100到12,000之间的许多值),它总是将鼠标向左或向右移动非常小的距离。
如果我去掉睡眠函数,结果是不一致的。它通常将我的角色旋转80-140度。我怀疑这是因为MoveMouseRelative从获取当前鼠标位置开始,它需要延迟一段时间才能获得准确的位置。
关于为什么MouseMoveRelative在值大于125的情况下不能正常工作,有什么指导意见吗?或者关于如何在x轴上瞬间快速移动12000个相对单位的鼠标有什么建议吗?
发布于 2021-02-25 07:23:54
如果我增加MouseMoveRelative超过125,它开始向错误的方向移动鼠标。
允许的范围是-127...+127
我怀疑这是因为MoveMouseRelative从获取当前鼠标位置开始
不是。
它不会询问当前的鼠标位置。
它调用SendInput()
不带标志MOUSEEVENTF_ABSOLUTE
若要模拟鼠标的相对移动,请执行以下操作。
如何在x轴上瞬间快速移动鼠标12000个相对单位?
for i = 0, 96 do
MoveMouseRelative (125,0)
end
如果我去掉睡眠函数,结果是不一致的。它通常将我的角色旋转80-140度。
尝试more precise version的Sleep()
for i = 0, 96 do
MoveMouseRelative (125,0)
FastSleep(1)
end
发布于 2021-02-25 04:58:43
或者关于如何在x轴上瞬间快速移动12000个相对单位的鼠标有什么建议吗?
如果你想瞬间移动相对12000,为什么你要以1ms的延迟移动125的97步?
97*125等于12125
为什么不呢MoveMouseRelative(12125, 0)
?
根据手册,MoveMouseRelative需要“几毫秒”才能完成。1毫秒不是很少。过早地读取鼠标位置会给出起始位置。因此,我假设垃圾邮件的相对运动,引用该位置可能会导致问题。
https://stackoverflow.com/questions/66358371
复制相似问题