我正在制作一个按下'w,a,s,d'键的脚本,以便在任何游戏中移动角色。为此,我需要按下“w”键一段特定的时间。我怎样才能做到这一点?
我想到了类似的东西:
pyautogui.keyDown('w')
time.sleep(2)
pyautogui.keyUp('w')
但是这只是暂停整个程序而没有按键被按下,所以这对我没用。
如pyautogui.keyDown()
的doc-string中所述:
在没有发布的情况下执行键盘按键操作。这将使该键处于停滞状态。
注意:由于某种原因,这似乎不会导致键盘重复,如果在文本字段上按住键盘键会发生。
你需要一个不同的方法 - 你可以使用pygame - with this
或者,如果你想留在pyautogui
你可以尝试这样的事情:
def hold_W (hold_time):
import time, pyautogui
start = time.time()
while time.time() - start < hold_time:
pyautogui.press('w')