키로 달 움직이기
Coddy Pygame 여정의 게임 창에서 배우는 Python 섹션에 포함된 레슨. 32개 중 11번째.
pygame.key.get_pressed()는 이 프레임에서 어떤 키가 눌려 있는지 알려줍니다. 프레임마다 한 번 반환값을 저장한 다음, 특정 키에 대해 확인하세요.
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
moon_x = moon_x - 4
if keys[pygame.K_RIGHT]:
moon_x = moon_x + 4왼쪽 키를 누르고 있는 동안 keys[pygame.K_LEFT]는 True이고, 그렇지 않으면 False입니다. 따라서 그 아래의 if문은 키를 누르고 있는 모든 프레임에서 실행됩니다. 오른쪽 키를 1초 동안 누르고 있으면 달이 240픽셀 이동합니다.
모든 키에는 이름이 있습니다. K_UP, K_DOWN, K_SPACE, A 키를 뜻하는 K_a, D 키를 뜻하는 K_d가 있습니다.
각 키를 따로 검사할 수 있도록 키마다 하나씩, 별도의 if문을 사용하세요. if문은 변경 부분, 즉 이벤트 루프 다음에 작성합니다.
챌린지
쉬움화살표 키로 달을 움직이세요:
- 변경 부분에서
keys = pygame.key.get_pressed()를 사용해 키를 읽으세요. - 왼쪽 키를 누르고 있는 동안
moon_x에서 4를 빼세요. - 오른쪽 키를 누르고 있는 동안
moon_x에 4를 더하세요.
직접 해보기
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# 게임 루프가 시작되기 전에 여기서 필요한 것들을 설정하세요.
moon_x = 320
moon_y = 240
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 매 프레임마다 여기서 필요한 것들을 변경하세요.
screen.fill((20, 24, 48))
# 화면을 채운 후 여기서 그리세요.
pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)
pygame.display.flip()
clock.tick(60)
pygame.quit()
게임 창에서 배우는 Python의 모든 레슨
직접 연습해 보세요: Pygame 플레이그라운드