728x90

2강에서 할 일
2강에서는 화면에 초록색 뱀의 머리 1칸을 그립니다.
- 격자 좌표(칸 단위) 개념을 이해합니다
- 좌표를 픽셀로 변환합니다
- 초록색 사각형으로 뱀 머리를 화면에 표시합니다
1) 뱀은 ‘픽셀’이 아니라 ‘격자’로 생각합니다
이번 게임에서 뱀의 위치는 픽셀 좌표가 아닌 격자 좌표로 관리합니다.
예시:
- (0, 0) → 맨 왼쪽 위
- (5, 5) → 가운데
- (9, 9) → 맨 오른쪽 아래
이렇게 칸 단위로 관리하면:
- 이동이 단순해집니다
- 충돌 판정이 쉬워집니다
- 코드가 깔끔해집니다
2) 뱀 머리의 시작 위치를 정합니다
시작 위치는 화면 정중앙으로 합니다.
- 격자 기준 중앙: (5, 5)
snake_x = 5
snake_y = 5
이 값은 “칸 번호”입니다.
아직 픽셀이 아닙니다.
3) 격자 좌표를 픽셀 좌표로 바꿉니다
화면에 그리려면 픽셀 좌표가 필요합니다.
공식은 아주 단순합니다.
픽셀 좌표 = 격자 좌표 × CELL_SIZE
pixel_x = snake_x * CELL_SIZE
pixel_y = snake_y * CELL_SIZE
4) 뱀 색상을 정의합니다
뱀은 초록색으로 합니다.
GREEN = (0, 255, 0)
5) 사각형(Rect)으로 뱀 머리를 그립니다
파이게임에서는 pygame.Rect로 사각형을 만듭니다.
snake_rect = pygame.Rect(
pixel_x,
pixel_y,
CELL_SIZE,
CELL_SIZE
)
이제 이 사각형을 화면에 그립니다.
pygame.draw.rect(screen, GREEN, snake_rect)
6) 그리기 코드는 게임 루프 안에 둡니다
화면에 계속 보이게 하려면 게임 루프 안에서 그립니다.
구조는 다음 순서를 유지합니다.
- 이벤트 처리
- 배경 그리기
- 뱀 머리 그리기
- 화면 업데이트
2강 정리
이번 강의에서 배운 핵심은 다음과 같습니다.
- 뱀 위치는 격자 좌표로 관리합니다
- 격자 → 픽셀 변환 공식은 좌표 × CELL_SIZE입니다
- pygame.Rect로 게임 오브젝트를 그립니다
이제 화면에 초록색 한 칸이 고정으로 보입니다.
전체 코드
더보기
import pygame
import sys
pygame.init()
# =========================
# 기본 설정
# =========================
CELL_SIZE = 40
GRID_SIZE = 10
SCREEN_SIZE = CELL_SIZE * GRID_SIZE
BLACK = (0, 0, 0)
GREEN = (0, 255, 0)
# =========================
# 화면 설정
# =========================
screen = pygame.display.set_mode((SCREEN_SIZE, SCREEN_SIZE))
pygame.display.set_caption("10x10 Snake Game")
clock = pygame.time.Clock()
# =========================
# 뱀 초기 위치 (격자 좌표)
# =========================
snake_x = 5
snake_y = 5
# =========================
# 게임 루프
# =========================
while True:
# 이벤트 처리
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
# 배경
screen.fill(BLACK)
# 격자 → 픽셀 변환
pixel_x = snake_x * CELL_SIZE
pixel_y = snake_y * CELL_SIZE
# 뱀 머리 그리기
snake_rect = pygame.Rect(
pixel_x,
pixel_y,
CELL_SIZE,
CELL_SIZE
)
pygame.draw.rect(screen, GREEN, snake_rect)
# 화면 갱신
pygame.display.update()
# FPS
clock.tick(10)
728x90
'⚙️ Python > 🎮 Pygame 실전' 카테고리의 다른 글
| [Pygame] 🐍 스네이크 게임 만들기 6강 | 먹이 처리 + 점수 (0) | 2026.01.06 |
|---|---|
| [Pygame] 🐍 스네이크 게임 만들기 5강 | 먹이 생성하기 (랜덤위치) (0) | 2026.01.05 |
| [Pygame] 🐍 스네이크 게임 만들기 4강 | 벽 충돌 처리하기 (게임 오버) (0) | 2026.01.04 |
| [Pygame] 🐍 스네이크 게임 만들기 3강 | 키보드 입력으로 뱀 머리 이동하기 (0) | 2026.01.03 |
| [Pygame] 🐍 스네이크 게임 만들기 1강 | 게임 창과 기본 루프 (0) | 2026.01.01 |