微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何让python检测按键?

如何解决我如何让python检测按键?

我想让这段代码在按下按钮时打个招呼 我使用 replit.com 或 repl.it 它说是一个错误

File "main.py",line 18,in intro
if keyboard.KEY_DOWN("a"):
TypeError: 'str' object is not callable 

我正在尝试在 python 上制作一个垄断游戏,但这样的错误不断出现

import tkinter as tk
from tkinter import *
import os
import random
import math
import pygame
from pygame.locals import * 
import sys
from sys import exit
import keyboard
from keyboard import *
window = pygame.init()
print("Wellcome to Math monopoply!!!\n")
time.sleep(1)
def intro():
  print("Hi")
  if keyboard.KEY_DOWN("a"):
    print("hi")
intro() 

解决方法

这可能有帮助

import pygame #Import pygame
import sys #
pygame.init() #Initialise it

window = pygame.display.set_mode((1000,800)) #Create a 1000x800 window

while True: #while loop
    for event in pygame.event.get():
        if event.type == pygame.QUIT: #if the user presses the 'X' button
            pygame.quit() #De= initialise pygame
            sys.exit() #Exit
        if event.type == pygame.KEYDOWN: #if a key is pressed down
            if event.key == pygame.K_a: 
                print("Hi") 

您可以在此处阅读有关 pygame.event.get() 的更多信息

,

如果当前按下某个键可以使用 pygame.key.get_pressed() 检测。 pygame.key.get_pressed() 返回一个包含每个键状态的列表。如果某个键被按下,则该键的状态为 True,否则为 False

keys = pygame.key.get_pressed()
if keys[pygame.K_a]:
    # [...]

键盘事件(参见 pygame.event 模块)仅在键的状态改变时发生一次。 KEYDOWN 事件在每次按下键时发生一次。您需要应用程序循环和事件循环来处理事件:

# application loop
run = True
while run:

    # event loop
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_a: 
                print("Hi")    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。