Menu
CoddyTech

화살표 방향으로 회전하기

Coddy의 Pygame으로 게임 만들기 코스 레슨. 41개 중 21번째.

뱀은 키를 한 번 누를 때마다 한 번 회전하므로, KEYDOWN 이벤트에서 방향키를 읽습니다. 딕셔너리는 각 방향키를 해당 방향에 연결합니다:

TURNS = {
    pygame.K_LEFT: (-1, 0),
    pygame.K_RIGHT: (1, 0),
    pygame.K_UP: (0, -1),
    pygame.K_DOWN: (0, 1),
}

event.key in TURNS는 네 방향키에 대해 true이고, TURNS[event.key]는 새 방향입니다. 하나의 검사가 네 개의 if문을 대체합니다:

elif event.type == pygame.KEYDOWN and event.key in TURNS:
    direction = TURNS[event.key]

위쪽은 (0, -1)입니다. 픽셀처럼 행은 창에서 아래쪽으로 갈수록 번호가 작아집니다.

challenge icon

챌린지

쉬움

화살표 키로 뱀을 조종하세요.

  1. pygame.init() 위에 네 방향 화살표를 위한 TURNS 딕셔너리를 추가하세요.
  2. 이벤트 루프에서 KEYDOWN 이벤트의 키가 TURNS에 있으면 direction을 해당 값으로 설정하세요.

‘플레이’를 누르고 아래쪽 화살표를 누르세요. 뱀이 아래쪽으로 방향을 바꿉니다. 그런 다음 ‘확인’을 누르세요.

직접 해보기

import pygame

CELL = 20
COLS, ROWS = 24, 18

pygame.init()
screen = pygame.display.set_mode((COLS * CELL, ROWS * CELL))
pygame.display.set_caption("Snake")
clock = pygame.time.Clock()


def draw_cell(cell, color):
    col, row = cell
    pygame.draw.rect(screen, color, (col * CELL + 1, row * CELL + 1, CELL - 2, CELL - 2))


head = (5, 9)
direction = (1, 0)

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    head = (head[0] + direction[0], head[1] + direction[1])

    screen.fill((30, 30, 46))
    draw_cell(head, (180, 255, 160))
    pygame.display.flip()
    clock.tick(10)

pygame.quit()

Pygame으로 게임 만들기의 모든 레슨

직접 연습해 보세요: Pygame 플레이그라운드