18537180361 发表于 2021-7-9 12:42:39

我想检测按键,当我点击检测到按下A键的时候,打印HELLO

import pygame

pygame.init()
while True:
    for event in pygame.event.get():
      if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_a:
                print('hello')
            elif event.key == pygame.K_ESCAPE:
                break
               




我想检测按键,当我点击检测到按下A键的时候,打印HELLO。 但是系统没反应,也不报错。请问我哪里错了, 还是pygame库必须要有窗口才可以运行。

青出于蓝 发表于 2021-7-9 12:44:48

本帖最后由 青出于蓝 于 2021-7-9 12:59 编辑

用keyboard比较好
import pygame

pygame.init()
screen = pygame.display.set_mode((1, 1))
while True:
    for event in pygame.event.get():
      if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_a:
                print('hello')
            elif event.key == pygame.K_ESCAPE:
                break
               

18537180361 发表于 2021-7-9 12:47:35

我的目的是,当我按下A键以后,系统执行移动鼠标并点击鼠标的操作,我并不是想写飞机大战。但是这个按下A键,一直检测不到,导致后面的程序也无法执行。

学渣李某人 发表于 2021-7-9 12:51:20

要有窗口

青出于蓝 发表于 2021-7-9 12:51:24

本帖最后由 青出于蓝 于 2021-7-9 15:04 编辑

import keyboard

def abc(x):

    if x.name == 'a':
      print("hello")
keyboard.hook(abc)
keyboard.wait()

先pip安装keyboard

青出于蓝 发表于 2021-7-9 12:59:40

18537180361 发表于 2021-7-9 12:47
我的目的是,当我按下A键以后,系统执行移动鼠标并点击鼠标的操作,我并不是想写飞机大战。但是这个按下A ...

必须有窗口
import pygame

pygame.init()
screen = pygame.display.set_mode((1, 1))
while True:
    for event in pygame.event.get():
      if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_a:
                print('hello')
            elif event.key == pygame.K_ESCAPE:
                break
               

青出于蓝 发表于 2021-7-9 13:00:19

如果不需要窗口还是用keyboard比较好
欢迎追问

叼辣条闯世界 发表于 2021-7-9 13:02:30

import keyboard
while True:
    keyboard.wait('a')
    print('Hello')
   
一定要pip!!!

18537180361 发表于 2021-7-9 14:46:21

青出于蓝 发表于 2021-7-9 12:51
先pip安装keyboard

hook是干啥用的

z5560636 发表于 2021-7-9 16:08:42

18537180361 发表于 2021-7-9 14:46
hook是干啥用的

钩子函数?

青出于蓝 发表于 2021-7-9 17:15:23

@不二如是
页: [1]
查看完整版本: 我想检测按键,当我点击检测到按下A键的时候,打印HELLO