본문 바로가기

[Pygame] 🐍 스네이크 게임 만들기 1강 | 게임 창과 기본 루프

@도마22026. 1. 1. 19:00
728x90


1강에서 할 일

1강에서는 “게임이 계속 실행되는 기본 틀”을 완성하겠습니다.

  • 파이게임 초기화
  • 10×10 격자 기반 화면 크기 설정
  • 400×400 게임 창 생성
  • 이벤트 처리(창 닫기)
  • 검은색 배경을 매 프레임 그리기
  • FPS(속도) 제한

0) 준비: 파이게임 설치(최초 1회)

터미널/명령 프롬프트(cmd)에서 아래를 실행합니다.

pip install pygame

1) 파일 만들기

snake_game.py 같은 이름으로 파일을 만들고 시작하겠습니다.


2) 필요한 모듈 가져오기

파이게임과 프로그램 종료를 위해 sys를 사용합니다

import pygame
import sys

3) 파이게임 초기화

파이게임 기능을 쓰기 전에 초기화를 해야 합니다.

pygame.init()

4) 10×10 격자와 화면 크기 설정

우리는 “10×10 판”을 사용할 것이고, 한 칸을 40픽셀로 하겠습니다.

  • 칸 크기: 40
  • 격자 크기: 10
  • 화면 크기: 40×10 = 400
CELL_SIZE = 40
GRID_SIZE = 10
SCREEN_SIZE = CELL_SIZE * GRID_SIZE

5) 색상 정의(배경은 검은색)

배경을 검은색으로 칠하겠습니다.

BLACK = (0, 0, 0)

6) 게임 창 만들기 + 제목 설정

화면을 400×400으로 만들고, 창 제목을 붙입니다.

screen = pygame.display.set_mode((SCREEN_SIZE, SCREEN_SIZE))
pygame.display.set_caption("10x10 Snake Game")

7) FPS 조절용 시계 만들기

게임이 너무 빠르게 돌아가지 않도록 clock을 만들어야합니다.

clock = pygame.time.Clock()

8) 게임 루프 만들기(핵심)

이제부터 게임이 “계속 실행되도록” 반복문을 만들겠습니다.

while True:
    # 1) 이벤트 처리
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    # 2) 화면 그리기(검은색 배경)
    screen.fill(BLACK)

    # 3) 화면 갱신
    pygame.display.update()

    # 4) 속도 제한(FPS)
    clock.tick(10)

여기까지 하면,

  • 창이 뜨고
  • 검은색 화면이 계속 유지되며
  • X 버튼을 누르면 정상 종료됩니다.

1강 정리

이번 강의에서 만든 것은 “게임의 뼈대”입니다.

  • 화면 크기(10×10 격자 기반)
  • 게임 창 생성
  • 이벤트 처리
  • 배경 출력
  • 프레임(속도) 제한

전체 코드

더보기
import pygame
import sys

pygame.init()

# =========================
# 기본 설정
# =========================
CELL_SIZE = 40
GRID_SIZE = 10
SCREEN_SIZE = CELL_SIZE * GRID_SIZE

BLACK = (0, 0, 0)

# =========================
# 화면 설정
# =========================
screen = pygame.display.set_mode((SCREEN_SIZE, SCREEN_SIZE))
pygame.display.set_caption("10x10 Snake Game")

clock = pygame.time.Clock()

# =========================
# 게임 루프
# =========================
while True:
    # 이벤트 처리
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    # 화면 그리기
    screen.fill(BLACK)

    # 화면 갱신
    pygame.display.update()

    # FPS 설정
    clock.tick(10)

728x90
도마2
@도마2 :: 도마의 코드노트

초보자를 위한 코딩 강의를 정리합니다. 파이썬부터 C#, Unity 게임 제작까지 차근차근 기록합니다. — 도마

목차