📜  pygame.key.get_pressed() - Python (1)

📅  最后修改于: 2023-12-03 15:18:45.201000             🧑  作者: Mango

Python中pygame.key.get_pressed()

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的键盘,返回的数组可能会更短。