파이게임에서 키보드 입력 받기

Maxim Maeder 2023년6월21일
  1. event 루프를 사용하여 Pygame에서 키보드 입력 받기
  2. pygame.key.get_pressed()를 사용하여 파이게임에서 키보드 입력 받기
파이게임에서 키보드 입력 받기

이 튜토리얼은 파이게임에서 키보드 입력을 받는 방법을 알려줍니다.

여기에 표시된 코드는 유효한 파이게임 창에 대한 완전한 코드가 아닙니다. 베어본 프레임워크에 관심이 있다면 이 문서를 참조하십시오.

파이게임에서 키보드 입력을 받는 방법은 event 루프와 pygame.key.get_pressed() 두 가지가 있습니다. 나중에 설명할 한 가지 중요한 차이점이 있습니다.

event 루프를 사용하여 Pygame에서 키보드 입력 받기

창의 종료 요청을 처리했기 때문에 Pygame 프레임워크를 얻기 위해 기사를 읽는 경우 이미 event 루프를 사용했습니다.

pygame.event.get() 메서드가 반환한 배열을 반복합니다. 이 프레임에서 발생한 모든 이벤트를 포함합니다.

다음 줄에서 유형을 확인합니다. 여러 가지 유형이 있으며 가장 많이 사용되는 것은 KEYDOWNKEYUP입니다.

아래에서 볼 수 있듯이 KEYDOWN 이벤트도 확인합니다. 그런 다음 키가 E인지 확인했습니다.

그렇다면 E Pressed를 인쇄합니다. 키를 누르고 있을 때가 아니라 키를 누른 프레임에서만 true로 평가됩니다.

그렇게 하려면 pygame.key.get_pressed()가 필요합니다. 그리고 다음 부분에서 사용법에 대해 설명합니다.

코드 조각:

# Main Loop
for event in pygame.event.get():
    if event.type == pygame.QUIT:
        pygame.quit()
        sys.exit()
    elif event.type == pygame.KEYDOWN:
        if event.key == pygame.K_e:
            print("E Pressed")

pygame.key.get_pressed()를 사용하여 파이게임에서 키보드 입력 받기

이것을 사용하여 현재 프레임에서 키의 상태를 얻습니다. 즉, 키를 처음 눌렀을 때뿐만 아니라 키를 눌렀을 때도 신호를 받습니다.

아래에서 이에 대한 간단한 예를 찾을 수 있습니다. 먼저 pygame.key.get_pressed 메서드를 사용하여 이 프레임에서 누른 모든 키가 포함된 배열을 얻은 다음 키가 눌렸는지 확인합니다.

파이게임의 주요 상수 중 하나로 이 값을 얻습니다. W 키를 누르면 W Pressed가 인쇄됩니다.

코드 조각:

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

완전한 예제 코드

# 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))

# 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:
            if event.key == pygame.K_e:
                print("E Pressed")

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

    pygame.display.flip()
    fpsClock.tick(fps)
작가: Maxim Maeder
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