셀 격자
Coddy의 Pygame으로 게임 만들기 코스 레슨. 40개 중 19번째.
Snake는 격자 위에서 움직입니다. 창은 가로 24칸, 세로 18칸이며 각 칸은 한 변이 20픽셀이고, 뱀은 한 번에 한 칸씩 움직입니다.
칸 단위로 작업하고, 그릴 때만 픽셀로 변환하세요. 셀 (col, row)은 픽셀 위치 (col * 20, row * 20)에서 시작합니다. 각 셀을 가로세로 각각 2픽셀 작게 그리고 각 가장자리에서 1픽셀씩 안쪽으로 그리면 이웃한 셀 사이에 얇은 간격이 생겨 뱀의 몸통 마디를 구분할 수 있습니다.
def draw_cell(cell, color):
col, row = cell
pygame.draw.rect(screen, color, (col * CELL + 1, row * CELL + 1, CELL - 2, CELL - 2))col, row = cell은 튜플의 값을 두 변수에 풀어 넣습니다. CELL, COLS, ROWS와 같은 상수에 숫자를 넣어 관리하세요. 코드에 각 숫자의 의미가 드러나며, 하나를 바꾸면 게임 전체가 바뀝니다.
챌린지
쉬움- 루프 위에 위와 같이 각 변에서 1픽셀 안쪽에 셀 하나를 그리는
draw_cell(cell, color)을 작성하세요. head = (5, 9)로 설정하세요.- 화면을 채운 다음
draw_cell(head, (180, 255, 160))으로 머리를 그리세요.
직접 해보기
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()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((30, 30, 46))
pygame.display.flip()
clock.tick(10)
pygame.quit()
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
Pygame으로 게임 만들기의 모든 레슨
직접 연습해 보세요: Pygame 플레이그라운드