我为名为Transformice的游戏创建了代码。我想使用一个函数来检查我是否在游戏中按下了某些东西(例如“ esc”)并完成了程序。
我读过的所有功能都需要我按控制台上的字母,但是我想在玩游戏时按它,而程序会检测到该字母。可能吗(怎么办?)?
from pyautogui import typewrite, locateOnScreen
from time import sleep
while(True):
img_controle = locateOnScreen('Screenshot_1.PNG', confidence = 0.7)
if img_controle:
typewrite(['enter', 'up', 'up', 'enter'], interval = 0.05)
typewrite(['enter', 'up', 'up', 'enter'], interval = 0.05)
img_controle = None
sleep(5)
答案 0 :(得分:0)
您可以使用其他键(例如“ q”)代替“ esc”来退出。然后可以使用以下代码:
import win32api as wapi
keyList = ["\b"]
for char in "ABCDEFGHIJKLMNOPQRSTUVWXYZ 123456789,.'£$/\\":
keyList.append(char)
def key_check():
keys = []
for key in keyList:
if wapi.GetAsyncKeyState(ord(key)):
keys.append(key)
return keys
key_check()将返回执行该功能时所有按下的键的列表。
只需定期调用此函数(例如在每个游戏循环中)并检查:
if 'q' in key_check():
# whatever action I want to do
源代码取自:https://github.com/Sentdex/pygta5/blob/master/getkeys.py