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
'⚙️ Python > 🎮 Pygame 실전' 카테고리의 다른 글
| [Pygame] 🏰 2D 타워 디펜스 게임 만들기 4강 | 적 여러 마리 스폰 & 끝에 가면 삭제 (0) | 2026.02.04 |
|---|---|
| [Pygame] 🏰 2D 타워 디펜스 게임 만들기 3강 | 적 만들기 & 경로 따라 이동시키기 (0) | 2026.02.03 |
| [Pygame] 🏰 2D 타워 디펜스 게임 만들기 1강 | 개발 환경 준비 (0) | 2026.02.01 |
| [Pygame] ✈️ 전투기 슈팅 게임 만들기 13강 | 아이템 생성 & 회복 시스템 구현 (0) | 2026.01.23 |
| [Pygame] ✈️ 전투기 슈팅 게임 만들기 12강 | 적 타입 & 이동 패턴 추가하기 (0) | 2026.01.22 |