Godot Monster Collector Battle Tutorial
- Godot에서 2D 전투 씬을 설정하고, 배경, 카메라, 몬스터 시작 위치를 구성합니다. 🎮
battle.tscn을 기본 실행 씬으로 설정하여 프로젝트 시작 시 자동으로 로드되도록 합니다. ⚙️
Sprite2D로 배경을 추가하고 Camera2D를 자식으로 두어 배경이 화면 전체를 덮도록 조정합니다. 📸
- 플레이어와 적 몬스터의 시작 위치를 정의하기 위해
Marker2D 노드를 사용하여 스폰 지점을 표시합니다. 📍
- 몬스터 스프라이트를 위한
Node2D 부모 노드를 player monster sprites와 enemy monster sprites로 구조화합니다. 🌳
- 개별 몬스터를 표시하는
battle_sprite.tscn 씬을 생성하고, Sprite2D를 루트 노드로 사용합니다. 👾
AnimationPlayer를 사용하여 battle_sprite의 idle 및 attack 애니메이션을 frame 속성 업데이트를 통해 구현합니다. 🎬
battle.tscn에 스크립트를 추가하여 정의된 시작 위치에 battle_sprite 인스턴스를 동적으로 생성하고 배치합니다. 📝
battle_sprite_setup 및 create_battle_sprite 함수를 구현하여 몬스터 스프라이트를 인스턴스화하고 초기 위치 및 플레이어 여부를 설정합니다. ✨
- 플레이어 몬스터의
flip_h 속성을 조정하여 적 몬스터와 마주보도록 좌우 반전시킵니다. ↔️
- 몬스터의 데이터(체력, 에너지, 레벨, 공격 등)는 Godot의
Resource 객체를 통해 관리되며, 시각적인 battle_sprite와 분리됩니다. 📊
Resource를 상속받는 MonsterResource.gd 스크립트를 생성하고 class_name을 추가하여 에디터에서 사용자 정의 리소스로 사용할 수 있게 합니다. 📜
MonsterResource.gd에 export var를 사용하여 id (enum) 및 level과 같은 속성을 인스펙터에 노출시킵니다. 📤
battle_sprite.gd 스크립트에 MonsterResource 타입의 변수를 export하여 특정 몬스터 데이터 리소스(test.tres)를 연결할 수 있게 합니다. 🔗
- 연결된
MonsterResource에서 resource.id 및 resource.level과 같은 데이터를 battle_sprite 스크립트 내에서 접근하는 방법을 시연합니다. 🔍
resource.id를 사용하여 전역 data.gd 딕셔너리에서 각 몬스터에 해당하는 battle_texture를 동적으로 로드하여 시각적 변화를 구현합니다. 🖼️
- 향후
MonsterResource에 더 많은 데이터와 함수를 추가하여 data.gd 딕셔너리에 쉽게 접근하고 몬스터를 포괄적으로 관리할 계획을 제시합니다. 📈
- 전역
data.gd에 player_monsters 및 enemy_monsters 배열을 도입하여 MonsterResource 인스턴스를 저장하고 게임 상태를 관리합니다. 📦