📅  最后修改于: 2023-12-03 15:18:45.201000             🧑  作者: Mango
pygame.key.get_pressed()
是 Pygame 中的一个函数,可用于检测键盘上所有按键的状态。返回值是一个元组,每个元素是一个布尔值,表示相应的键是否被按下。该函数既可以检测ASCII字符键的状态,也可以检测箭头键、功能键等非字符键的状态。
下面是基本的使用方法:
import pygame
# 初始化 Pygame
pygame.init()
# 设置窗口并显示
win = pygame.display.set_mode((500, 500))
pygame.display.set_caption("Get Key Pressed Demo")
pygame.display.flip()
# 游戏循环
running = True
while running:
# 事件循环
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 检测键盘状态
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
print("Left Arrow Key Pressed")
if keys[pygame.K_RIGHT]:
print("Right Arrow Key Pressed")
if keys[pygame.K_UP]:
print("Up Arrow Key Pressed")
if keys[pygame.K_DOWN]:
print("Down Arrow Key Pressed")
# 退出 Pygame
pygame.quit()
在上面的代码中,我们首先初始化了 Pygame,并设置了一个窗口。然后,在游戏循环中,我们使用 pygame.key.get_pressed()
来检测键盘状态。如果某个键被按下了,我们就简单地打印一条信息。
注意,在每次循环中,我们都要调用 pygame.event.get()
来获取 Pygame 产生的所有事件,并通过循环来判断是否有 QUIT
事件发生,以决定是否退出程序。
除了检测箭头键之外,我们还可以使用常量如 pygame.K_a
来检测其他键的状态。例如:
if keys[pygame.K_a]:
print("The 'A' Key Pressed")
值得注意的是,pygame.key.get_pressed()
返回的数组的长度与当前安装的键盘类型有关。对于基本的PC键盘而言,数组长度为 512,因为有256个ASCII码值的按键(每个键都有一个“按下”和“未按下”的状态),另外还有256个非ASCII码值的按键。但是,对于某些其他键盘类型,例如Mac的键盘,返回的数组可能会更短。