📜  pygame 按键一直按下 - Python (1)

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

Pygame 按键一直按下 - Python

如果要在Pygame中检测按键是否一直按下,您需要使用pygame.key.get_pressed()函数。

该函数返回当前所有按键状态的布尔值元组。按键按下时,相应的布尔值为True,否则为False。

以下是一个简单的示例代码片段,演示了如何检测WASD键是否被按下。

import pygame
pygame.init()

# 设置窗口
size = (700, 500)
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Pygame 按键一直按下 - Python")

# 设置颜色
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0 ,0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)

# 设置字体
font = pygame.font.SysFont('arial', 30)

# 游戏循环
done = False
while not done:
    # 处理事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True
    
    # 获取按键状态
    keys = pygame.key.get_pressed()
    if keys[pygame.K_w]:
        print("W键被按下")
    if keys[pygame.K_a]:
        print("A键被按下")
    if keys[pygame.K_s]:
        print("S键被按下")
    if keys[pygame.K_d]:
        print("D键被按下")

    # 设置背景
    screen.fill(WHITE)

    # 在屏幕上写文本
    text = font.render('按键一直按下示例', True, BLACK)
    screen.blit(text, (250, 50))

    # 刷新屏幕
    pygame.display.flip()

# 关闭pygame库
pygame.quit()

上面代码片段将在窗口中显示一个文本,然后检测WASD键是否被按下,并在控制台中输出相应信息。

在这里,我们使用了pygame.key.get_pressed()函数来获取按键状态,并使用bool索引来检测按键是否被按下。

此外,我们还在游戏循环中添加了一个在屏幕上写文本的代码,以及一个pygame.display.flip()代码,用于更新屏幕上的所有更改。

如果您想更进一步,您可以使用Pygame中的其他功能,例如键绑定和事件处理程序来捕获和处理不同的按键事件。