KEYDOWN-Funktion in Pygame

Maxim Maeder 21 Juni 2023
KEYDOWN-Funktion in Pygame

Dieses kurze Tutorial zeigt, wie man KEYDOWN in Pygame verwendet.

die KEYDOWN-Funktion in Pygame

Mit der Funktion KEYDOWN erfassen Sie den Moment, in dem die Taste gedrückt wurde, und es ist eine Konstante. Wir testen es anhand der Ereignistypen, die von der Methode pygame.event.get() zurückgegeben werden.

for event in pygame.event.get():
    if event.type == pygame.QUIT:
        pygame.quit()
        sys.exit()
    elif event.type == pygame.KEYDOWN:
        # your code
        pass

Es erfolgt keine Ausgabe, wenn die Taste gedrückt gehalten wird. Wir haben zwei Möglichkeiten, das zu ändern.

Wir können die Methode pygame.key.set_repeat(delay) aufrufen und ihr die Zeit in Millisekunden übergeben, nach der das Event erneut aufgerufen werden soll, wenn es gedrückt gehalten wird. Dann wird es nach dem Drücken nach der von uns angegebenen Zeit ausgelöst.

Es ist nicht die beste Vorgehensweise, dies auf diese Weise zu tun, und es ist besser, pygame.key.get_pressed zu verwenden und nach dem unten dargestellten Schlüssel zu suchen.

keys = pygame.key.get_pressed()
if keys[pygame.K_w]:
    print("W Pressed")

Vollständiger Code:

# Imports
import sys
import pygame

# Configuration
pygame.init()
fps = 60
fpsClock = pygame.time.Clock()
width, height = 640, 480
screen = pygame.display.set_mode((width, height))

pygame.key.set_repeat(10)

# Game loop.
while True:
    screen.fill((20, 20, 20))
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        elif event.type == pygame.KEYDOWN:
            # your code
            pass

    keys = pygame.key.get_pressed()
    if keys[pygame.K_w]:
        print("W Pressed")

    pygame.display.flip()
    fpsClock.tick(fps)
Maxim Maeder avatar Maxim Maeder avatar

Hi, my name is Maxim Maeder, I am a young programming enthusiast looking to have fun coding and teaching you some things about programming.

GitHub

Verwandter Artikel - Pygame Function