【发布时间】:2021-12-13 12:37:57
【问题描述】:
MoveMouseRelative 移动得非常快,但我注意到当我让鼠标向上然后向右移动时,它通常会获得一个快捷方式。所以我在编辑时错过了一些方块。 因此,它似乎没有向上走,而是向右走。 我试图在移动鼠标或两次移动之间增加更多的睡眠时间。在第一种情况下,它移动得太慢,而在第二种情况下,它仍然走捷径。
这个代码是最好的(不太糟糕),我做了几个向上或向下移动,以便采用更小的快捷方式。但我确信可以通过更简单的代码(更少的行)和良好的编辑绘图来改进它。
请问如何解决?
----------------
-- Boutton 8 edit en rond ou du haut vers le bas mur ou escalier - MB8 round edit or up and down stair and wall
----------------
-- CapsLock OFF
-- Edit en rond - Round edit
if not IsKeyLockOn("capslock")then
if (event == "MOUSE_BUTTON_PRESSED" and arg == 8) then
PressAndReleaseKey("BackSpace")-- Edit
FastSleep(5)
PressAndReleaseKey("T")-- Reset Edit
if not IsMouseButtonPressed(3) then
--Regarder - Look
for i = 0, 20 do
MoveMouseRelative (0,127) -- bas - down
FastSleep(0.5)
end
FastSleep(5)
-- Dessiner Edit - Draw Edit
PressKey(13)-- Select Edit
for i = 0, 5 do
MoveMouseRelative (0,-127) -- haut - up
FastSleep(0.5)
end
FastSleep(5)
for i = 0, 5 do
MoveMouseRelative (0,-127) -- haut - up
FastSleep(0.5)
end
FastSleep(5)
for i = 0, 4 do
MoveMouseRelative (0,-127) -- haut - up
FastSleep(0.5)
end
FastSleep(5)
for i = 0, 4 do
MoveMouseRelative (0,-127) -- haut - up
FastSleep(0.5)
end
FastSleep(5)
for i = 0, 5 do
MoveMouseRelative (127,0) -- droite - right
FastSleep(0.5)
end
FastSleep(5)
for i = 0, 6 do
MoveMouseRelative (0,127) -- bas - down
FastSleep(0.5)
end
FastSleep(5)
for i = 0, 6 do
MoveMouseRelative (0,127) -- bas - down
FastSleep(0.5)
end
FastSleep(5)
for i = 0, 6 do
MoveMouseRelative (0,-127) -- haut - up
FastSleep(0.5)
end
FastSleep(5)
for i = 0, 5 do
MoveMouseRelative (-127,0) -- gauche- left
FastSleep(0.5)
end
FastSleep(5)
for i = 0, 5 do
MoveMouseRelative (-127,0) -- gauche - left
FastSleep(0.5)
end
FastSleep(5)
for i = 0, 6 do
MoveMouseRelative (0,127) -- bas - down
FastSleep(0.5)
end
FastSleep(5)
for i = 0, 6 do
MoveMouseRelative (0,-127) -- haut - up
FastSleep(0.5)
end
FastSleep(1)
for i = 0, 5 do
MoveMouseRelative (0,-127) -- haut - up
FastSleep(0.5)
end
FastSleep(5)
for i = 0, 5 do
MoveMouseRelative (127,0) -- droite- right
FastSleep(0.5)
end
FastSleep(5)
end
(....)
if event == "MOUSE_BUTTON_RELEASED" and arg == 8 then
FastSleep(1)
ReleaseKey(13)-- Select Edit
FastSleep(1)
PressAndReleaseKey("F1")
PressAndReleaseKey(7) -- Alterner les raccourcis - Switch Quickbar
end
end
end
【问题讨论】:
-
游戏通常每帧更新其状态(包括用户输入),FPS 通常为 60。因此,每次更新需要 16 毫秒。这意味着 0.5 毫秒的睡眠在这里毫无意义。您应该在每个角落停留(不移动)16 毫秒,然后再改变移动方向以避免走捷径。
-
我记得我已经尝试过两次快速睡眠 20 或 30 次。正如您在另一个问题中所说,超过 30 我使用睡眠。我会再试一次,只关注角落。但是我的帧是 144 赫兹,而我平均以 100 赫兹的速度转动。
-
@Egor 我试着专注于角落。似乎好一点,只是慢了一点。在创意模式(低 ping
-
可能游戏的更新时间间隔取决于ping。
-
@Egor 是的,可能会解决问题。我找到了一种无需捷径即可使拐角移动的方法(请参阅我的答案)。我试图将它集成到我以前的代码中,但突然在我的测试中没有任何效果了。 Ghub 告诉我: [string "LuaVM"]:39: 尝试在你的 fastsleep 代码中对 nil 值(本地'ms')行号:1 => this 执行算术。我从原来的 = 相同的地方再次复制/粘贴它。任何想法 ? Getrunningtime 问题?
标签: lua logitech-gaming-software