본문 바로가기

[Pygame] 🏰 2D 타워 디펜스 게임 만들기 2강 | 고정 경로 만들기

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


이번 2강에서는 타워디펜스의 핵심 요소인 고정된 경로(Path) 를 정의하고,
적이 이동하게 될 길을 화면에 직접 그려보는 것이 목표입니다.

이번 강의에서 만든 경로는
이후 적 이동, 타워 배치 제한, 타겟팅 기준까지 모두 재사용됩니다.


1. 고정 경로(Path) 방식

이번 강의에서는 가장 직관적인 웨이포인트 방식을 사용합니다.

  • 경로를 여러 개의 좌표로 나눔
  • 적은 좌표를 하나씩 목표로 이동
  • 경로 수정과 관리가 쉬움

타워디펜스 입문용으로 가장 많이 사용하는 방식입니다.


2. 경로 좌표 정의하기

아래는 이번 강의에서 사용할 최종 경로 좌표입니다.

path_points = [
    (0, 300),
    (100, 300),
    (100, 100),
    (300, 100),
    (300, 500),
    (650, 500),
    (650, 300),
    (450, 300),
    (450, 100),
    (700, 100),
    (700, 200),
    (800, 200)
]
  • 화면 왼쪽에서 시작해 오른쪽으로 이동
  • 위아래로 여러 번 꺾이는 구조
  • 타워를 배치하기 좋은 여백이 생기도록 설계

이 좌표 리스트가 적 이동의 기준 경로가 됩니다.


3. 경로를 화면에 그리기

정의한 좌표를 선으로 연결해 길처럼 보이도록 그립니다.

pygame.draw.lines(
    screen,
    (200, 180, 100),
    False,
    path_points,
    40
)

 

  • 색상: 갈색 계열
  • 두께: 40픽셀
  • 여러 번 꺾이는 타워디펜스용 경로 표현

4. 메인 루프에 경로 추가

매 프레임마다 배경을 지운 뒤,
경로를 다시 그리도록 메인 루프에 추가합니다.

screen.fill((30, 30, 30))
pygame.draw.lines(screen, (200, 180, 100), False, path_points, 40)

 


5. 실행 결과

코드를 실행하면
어두운 배경 위에 여러 번 꺾이는 굵은 길이 나타납니다.

이 길이 바로 다음 강의에서
적이 실제로 따라 이동하게 될 고정 경로(Path) 입니다.


전체 코드

더보기
import pygame
import sys

pygame.init()

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("Tower Defense")

clock = pygame.time.Clock()
FPS = 60

# 경로 좌표
path_points = [
    (0, 300),
    (100, 300),
    (100, 100),
    (300, 100),
    (300, 500),
    (650, 500),
    (650, 300),
    (450, 300),
    (450, 100),
    (700, 100),
    (700, 200),
    (800, 200)
]

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    screen.fill((30, 30, 30))  # 배경
    pygame.draw.lines(
        screen,
        (200, 180, 100),
        False,
        path_points,
        40
    )  # 경로

    pygame.display.update()
    clock.tick(FPS)

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

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

목차