我当前正在使用一个脚本,该脚本按' w,a,s,d '键,以便在任何游戏中移动角色。为此,我需要将' w '键按特定时间施加。我该如何实现?
我想到了:
pyautogui.keyDown('w')
time.sleep(2)
pyautogui.keyUp('w')
,但这只是暂停了整个程序,并且没有按下键,所以这对我没有用。
如pyautogui.keyDown()
的DOC-string中所述:
执行键盘键,而无需发布。这会把 钥匙处于截止状态。
注意:出于某种原因,这似乎不会引起键重复 如果在文本字段上键入键盘键,就会发生。
您需要一种不同的方法 - 您可以使用pygame-与此
或,如果您想留下pyautogui
,可以尝试这样的事情:
def hold_W (hold_time):
import time, pyautogui
start = time.time()
while time.time() - start < hold_time:
pyautogui.press('w')
with pyautogui.hold(key):
pyautogui.sleep(hold)
这将在不制作自己的功能的情况下解决问题。