有没有一个函数来检查我是否在Python的任何屏幕上按了什么?

2024-06-25 06:54:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经为一个名为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)

Tags: 函数代码fromimport程序游戏imgsleep
1条回答
网友
1楼 · 发布于 2024-06-25 06:54:26

您可以使用不同的键来代替“esc”,例如“q”表示退出。然后可以使用以下代码:

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\ u check()将返回在函数执行时按下的所有键的列表。你知道吗

只需定期调用此函数(例如在每个游戏循环中)并检查:

if 'q' in key_check():
    # whatever action I want to do

源代码取自:https://github.com/Sentdex/pygta5/blob/master/getkeys.py

相关问题 更多 >