데브허브 | DEVHUB | TOWER DEFENSE in Godot - Complete Mini-CourseTOWER DEFENSE in Godot - Complete Mini-Course
- Godot의
Path2D와 PathFollow2D 노드를 활용하여 적(Enemy)의 경로 기반 이동을 구현하며, progress 또는 progress_ratio 속성으로 움직임을 제어합니다. 🛣️
- 적은
Area2D 기반으로 구성되며, 스크립트를 통해 동적으로 인스턴스화되어 PathFollow2D의 자식으로 추가됩니다. 👾
- 적은 경로의 끝에 도달하면
queue_free()를 통해 자동으로 제거되며, 이는 플레이어의 체력 감소와 같은 게임 로직과 연결될 수 있습니다. 💥
- 타워는
Node2D를 기반으로 하며, 부모 클래스와 자식 클래스 간의 상속 구조를 사용하여 다양한 타워 유형을 유연하게 확장할 수 있습니다. 🏰
- 타워는
Area2D를 사용하여 범위 내의 적을 감지하고, 감지된 적 중 첫 번째 적의 global_position을 향해 포탑(Sprite2D)을 회전시켜 조준합니다. 🎯
- 적, 타워, 총알 간의 상호작용을 위해 충돌 레이어와 마스크를 세심하게 설정하여 필요한 상호작용만 허용하고 불필요한 충돌을 방지합니다. 🛡️
- 타워는
Timer 노드를 사용하여 주기적으로 shoot 시그널을 발생시키고, 이 시그널을 통해 총알(Area2D)을 동적으로 생성하여 발사합니다. 🔫
scenes, enemies, towers, bullets와 같은 명확한 폴더 구조를 사용하여 프로젝트의 모듈성과 관리 용이성을 높입니다. 📁
- Godot의 기본 방향과 스프라이트의 시각적 방향 불일치로 인해 발생하는 회전 오프셋(예: 90도)을 코드(
- PI / 2)로 보정하여 정확한 조준을 구현합니다. 📐
- 적의 움직임과 타워의 조준을 시각적으로 확인하기 위해 개발 과정에서
Camera2D의 줌 기능을 활용합니다. 🔍