在python中使用键盘模块会导致键盘滞后



所以我正在尝试制作一个python脚本,该脚本将按序列中的特定键来在游戏中执行机械/特技。我仍在处理时间等问题,但我遇到的主要问题是,一旦我启动文件,它就会导致键盘延迟。一旦文件启动,我在键盘上做的任何事情,都不一定是特定的键击,此时任何键都会滞后,循环继续检查键可能会有问题,但我不太确定。

这是代码:

from pynput.keyboard import Key, Controller
from pynput.mouse import Button, Controller
import time
import keyboard
print("Press Q to execute speedflip")
mouse = Controller()
while True:  # making a loop
try:  # used try so that if user pressed other than the given key error will not be shown
if keyboard.is_pressed('5'):  # if key 'q' is pressed 
print('Speedflip 5 executed')
mouse.press(Button.left)
keyboard.press('w')
#part boost-start done
keyboard.press('w')
keyboard.press('a')
time.sleep(0.18)
keyboard.release('w')
keyboard.release('a')
#part-position-done
time.sleep(0.6)
keyboard.press('w')
keyboard.press('e')
mouse.click(Button.right, 1)
time.sleep(0.1)
mouse.click(Button.right, 1)
time.sleep(0.1)
keyboard.release('w')
keyboard.release('e')
#diagonal flip done
keyboard.press('s')
keyboard.press('d')
time.sleep(0.9)
keyboard.release('s')
keyboard.release('d')
#part diagonal flip cancel done
time.sleep(1)
mouse.release(Button.left)
keyboard.release('w')
#boost release donewa


if keyboard.is_pressed('6'):
print('Speedflip 6 is executed')
mouse.press(Button.left)
keyboard.press('w')
#part boost-start done
keyboard.press('w')
keyboard.press('a')
time.sleep(0.05)
keyboard.release('w')
keyboard.release('a')
#part-position-done
time.sleep(0.6)
keyboard.press('w')
keyboard.press('e')
mouse.click(Button.right, 1)
time.sleep(0.1)
mouse.click(Button.right, 1)
time.sleep(0.1)
keyboard.release('w')
keyboard.release('e')
#diagonal flip done
keyboard.press('s')
keyboard.press('d')
time.sleep(0.9)
keyboard.release('s')
keyboard.release('d')
#part diagonal flip cancel done
time.sleep(1)
mouse.release(Button.left)
keyboard.release('w')
#boost release done

except:
break

与其用检查按下的键来进行无限循环(您甚至无法从代码中猜测退出此循环(,不如在按下特定键时添加回调。它甚至显示在keyboard包的主页上(链接,查看示例部分(

def speedflip5():
print('Speedflip 5 executed')
mouse.press(Button.left)
keyboard.press('w')
# do all the stuff here ...
def speedflip6():
print('Speedflip 6 executed')
mouse.press(Button.left)
keyboard.press('w')
# do all the stuff here ...
import keyboard
keyboard.add_hotkey('5', speedflip5)
keyboard.add_hotkey('6', speedflip6)
keyboard.wait()

添加一些条件何时停止自己等待

最新更新