Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
L
ldefense
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Packages
Packages
Container Registry
Analytics
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Gavin An
ldefense
Commits
097a6fe6
Commit
097a6fe6
authored
Jun 24, 2026
by
Gavin An
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
스테이지 선택
parent
cd7db8ec
Changes
22
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
427 additions
and
98 deletions
+427
-98
assets/models/tile/tile_grass_Baked_BaseColor.png
assets/models/tile/tile_grass_Baked_BaseColor.png
+0
-0
assets/models/tile/tile_grass_Baked_BaseColor.png.import
assets/models/tile/tile_grass_Baked_BaseColor.png.import
+44
-0
assets/models/tile/tile_grass_navigate_Baked_BaseColor.png
assets/models/tile/tile_grass_navigate_Baked_BaseColor.png
+0
-0
assets/models/tile/tile_grass_navigate_Baked_BaseColor.png.import
...odels/tile/tile_grass_navigate_Baked_BaseColor.png.import
+44
-0
assets/models/tile/tile_grass_navigate_Baked_MetallicRoughness.png
...dels/tile/tile_grass_navigate_Baked_MetallicRoughness.png
+0
-0
assets/models/tile/tile_grass_navigate_Baked_MetallicRoughness.png.import
...le/tile_grass_navigate_Baked_MetallicRoughness.png.import
+44
-0
assets/models/tile/tile_natvigate.glb
assets/models/tile/tile_natvigate.glb
+0
-0
assets/models/tile/tile_natvigate.glb.import
assets/models/tile/tile_natvigate.glb.import
+0
-42
assets/models/tile/tile_wooden.glb.import
assets/models/tile/tile_wooden.glb.import
+0
-42
src/autoload/game_manager.gd
src/autoload/game_manager.gd
+3
-0
src/autoload/scene_changer.gd
src/autoload/scene_changer.gd
+0
-1
src/core/main.gd
src/core/main.gd
+23
-0
src/core/main.gd.uid
src/core/main.gd.uid
+1
-0
src/core/main.tscn
src/core/main.tscn
+2
-8
src/entities/monsters/base_monster.gd
src/entities/monsters/base_monster.gd
+3
-2
src/map/stages/stage_1_map.tscn
src/map/stages/stage_1_map.tscn
+9
-0
src/map/stages/stage_2_map.tscn
src/map/stages/stage_2_map.tscn
+9
-0
src/map/tile_mesh_library.tres
src/map/tile_mesh_library.tres
+108
-1
src/ui/stage_selection/stage_selection.gd
src/ui/stage_selection/stage_selection.gd
+26
-0
src/ui/stage_selection/stage_selection.gd.uid
src/ui/stage_selection/stage_selection.gd.uid
+1
-0
src/ui/stage_selection/stage_selection.tscn
src/ui/stage_selection/stage_selection.tscn
+108
-0
src/ui/summoner_selection/summoner_selection.gd
src/ui/summoner_selection/summoner_selection.gd
+2
-2
No files found.
assets/models/tile/tile_grass_Baked_BaseColor.png
0 → 100644
View file @
097a6fe6
4.32 MB
assets/models/tile/tile_grass_Baked_BaseColor.png.import
0 → 100644
View file @
097a6fe6
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cqsxcbggiu0vf"
path.s3tc="res://.godot/imported/tile_grass_Baked_BaseColor.png-7c9c82d948a5a5b87ab3a4ef6cf86f57.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
generator_parameters={
"md5": "0d5e6c5512cd85d42ba9395e8cfc43ac"
}
[deps]
source_file="res://assets/models/tile/tile_grass_Baked_BaseColor.png"
dest_files=["res://.godot/imported/tile_grass_Baked_BaseColor.png-7c9c82d948a5a5b87ab3a4ef6cf86f57.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
assets/models/tile/tile_grass_navigate_Baked_BaseColor.png
0 → 100644
View file @
097a6fe6
4.58 MB
assets/models/tile/tile_grass_navigate_Baked_BaseColor.png.import
0 → 100644
View file @
097a6fe6
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cr7x03rsqis61"
path.s3tc="res://.godot/imported/tile_grass_navigate_Baked_BaseColor.png-8e421d83325f71b889b5c0cb0c4a5ad5.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
generator_parameters={
"md5": "2bb7b1627376a715288f42411eac8984"
}
[deps]
source_file="res://assets/models/tile/tile_grass_navigate_Baked_BaseColor.png"
dest_files=["res://.godot/imported/tile_grass_navigate_Baked_BaseColor.png-8e421d83325f71b889b5c0cb0c4a5ad5.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
assets/models/tile/tile_
wooden.glb
→
assets/models/tile/tile_
grass_navigate_Baked_MetallicRoughness.png
View file @
097a6fe6
No preview for this file type
assets/models/tile/tile_grass_navigate_Baked_MetallicRoughness.png.import
0 → 100644
View file @
097a6fe6
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bsnnjrkj84dlr"
path.s3tc="res://.godot/imported/tile_grass_navigate_Baked_MetallicRoughness.png-524ac48e611d0ea525502f853914e5fd.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
generator_parameters={
"md5": "a33ff8c8ce2bc0af6b050a7fc25ff663"
}
[deps]
source_file="res://assets/models/tile/tile_grass_navigate_Baked_MetallicRoughness.png"
dest_files=["res://.godot/imported/tile_grass_navigate_Baked_MetallicRoughness.png-524ac48e611d0ea525502f853914e5fd.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
assets/models/tile/tile_natvigate.glb
deleted
100644 → 0
View file @
cd7db8ec
File deleted
assets/models/tile/tile_natvigate.glb.import
deleted
100644 → 0
View file @
cd7db8ec
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://rraupg42y6ff"
path="res://.godot/imported/tile_natvigate.glb-d1a0162fb96d2ee66536d7febab168f3.scn"
[deps]
source_file="res://assets/models/tile/tile_natvigate.glb"
dest_files=["res://.godot/imported/tile_natvigate.glb-d1a0162fb96d2ee66536d7febab168f3.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
gltf/naming_version=2
gltf/embedded_image_handling=1
assets/models/tile/tile_wooden.glb.import
deleted
100644 → 0
View file @
cd7db8ec
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://ceo5a5tyl3k5p"
path="res://.godot/imported/tile_wooden.glb-310a2ff2f5700248848d516d347039c4.scn"
[deps]
source_file="res://assets/models/tile/tile_wooden.glb"
dest_files=["res://.godot/imported/tile_wooden.glb-310a2ff2f5700248848d516d347039c4.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
gltf/naming_version=2
gltf/embedded_image_handling=1
src/autoload/game_manager.gd
View file @
097a6fe6
...
@@ -12,6 +12,9 @@ signal game_victory
...
@@ -12,6 +12,9 @@ signal game_victory
const
INIT_GOLD
:
int
=
30000
const
INIT_GOLD
:
int
=
30000
var
selected_summoner_data
:
SummonerData
=
null
var
selected_summoner_data
:
SummonerData
=
null
var
selected_stage_id
:
String
=
""
var
selected_stage_map_path
:
String
=
""
# 글로벌 플레이어 상태 변수 (정적 타이핑 적용)
# 글로벌 플레이어 상태 변수 (정적 타이핑 적용)
var
player_gold
:
int
=
INIT_GOLD
:
var
player_gold
:
int
=
INIT_GOLD
:
...
...
src/autoload/scene_changer.gd
View file @
097a6fe6
...
@@ -46,4 +46,3 @@ func change_scene_to_file(target_scene_path: String) -> void:
...
@@ -46,4 +46,3 @@ func change_scene_to_file(target_scene_path: String) -> void:
# 4. 입력 차단 해제
# 4. 입력 차단 해제
color_rect
.
mouse_filter
=
Control
.
MOUSE_FILTER_IGNORE
color_rect
.
mouse_filter
=
Control
.
MOUSE_FILTER_IGNORE
src/core/main.gd
0 → 100644
View file @
097a6fe6
extends
Node3D
## 메인 전장 월드 씬 루트 스크립트 (Main)
## 스테이지 선택에 따른 맵 데이터를 동적으로 읽어 전장에 탑재합니다.
func
_enter_tree
()
->
void
:
var
map_path
:
String
=
"res://src/map/stages/stage_1_map.tscn"
# 기본 맵
if
GameManager
.
selected_stage_map_path
!=
""
:
map_path
=
GameManager
.
selected_stage_map_path
var
map_scene
:
PackedScene
=
load
(
map_path
)
as
PackedScene
if
map_scene
:
var
map_inst
:
Node
=
map_scene
.
instantiate
()
map_inst
.
name
=
"StageMap"
var
nav_region
:
NavigationRegion3D
=
get_node_or_null
(
"NavigationRegion3D"
)
as
NavigationRegion3D
if
nav_region
:
nav_region
.
add_child
(
map_inst
)
print
(
"Main: Loaded map scene '"
,
map_path
,
"' successfully."
)
else
:
push_error
(
"Main: NavigationRegion3D not found."
)
else
:
push_error
(
"Main: Failed to load map scene: "
+
map_path
)
src/core/main.gd.uid
0 → 100644
View file @
097a6fe6
uid://cinnjs2c10i2a
src/core/main.tscn
View file @
097a6fe6
[gd_scene format=3 uid="uid://bj2p5iv0c10v6"]
[gd_scene format=3 uid="uid://bj2p5iv0c10v6"]
[ext_resource type="
MeshLibrary" uid="uid://ddc7y16q0whgv" path="res://src/map/tile_mesh_library.tres" id="1_nxx65
"]
[ext_resource type="
Script" uid="uid://cinnjs2c10i2a" path="res://src/core/main.gd" id="1_main
"]
[ext_resource type="Script" uid="uid://dd1xgi6hnpuvs" path="res://src/core/rts_camera.gd" id="1_rts_cam"]
[ext_resource type="Script" uid="uid://dd1xgi6hnpuvs" path="res://src/core/rts_camera.gd" id="1_rts_cam"]
[ext_resource type="Script" uid="uid://cq7r51whh6po" path="res://src/core/stage_manager.gd" id="2_stage_mgr"]
[ext_resource type="Script" uid="uid://cq7r51whh6po" path="res://src/core/stage_manager.gd" id="2_stage_mgr"]
[ext_resource type="PackedScene" uid="uid://ygm6ry4fu5x0" path="res://src/entities/monsters/noble_man/noble_man_monster.tscn" id="4_nxx65"]
[ext_resource type="PackedScene" uid="uid://ygm6ry4fu5x0" path="res://src/entities/monsters/noble_man/noble_man_monster.tscn" id="4_nxx65"]
...
@@ -9,7 +9,6 @@
...
@@ -9,7 +9,6 @@
[ext_resource type="PackedScene" uid="uid://bqga1rvcjyydy" path="res://src/ui/hud.tscn" id="5_hud"]
[ext_resource type="PackedScene" uid="uid://bqga1rvcjyydy" path="res://src/ui/hud.tscn" id="5_hud"]
[ext_resource type="PackedScene" path="res://src/entities/monsters/skeleton/skeleton_monster.tscn" id="6_skeleton"]
[ext_resource type="PackedScene" path="res://src/entities/monsters/skeleton/skeleton_monster.tscn" id="6_skeleton"]
[sub_resource type="NavigationMesh" id="NavigationMesh_map"]
[sub_resource type="NavigationMesh" id="NavigationMesh_map"]
agent_height = 1.0
agent_height = 1.0
...
@@ -21,6 +20,7 @@ _data = {
...
@@ -21,6 +20,7 @@ _data = {
point_count = 5
point_count = 5
[node name="Main" type="Node3D" unique_id=953576256]
[node name="Main" type="Node3D" unique_id=953576256]
script = ExtResource("1_main")
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=873926246]
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=873926246]
...
@@ -31,12 +31,6 @@ shadow_enabled = true
...
@@ -31,12 +31,6 @@ shadow_enabled = true
[node name="NavigationRegion3D" type="NavigationRegion3D" parent="." unique_id=161846999]
[node name="NavigationRegion3D" type="NavigationRegion3D" parent="." unique_id=161846999]
navigation_mesh = SubResource("NavigationMesh_map")
navigation_mesh = SubResource("NavigationMesh_map")
[node name="GridMap" type="GridMap" parent="NavigationRegion3D" unique_id=958427223]
mesh_library = ExtResource("1_nxx65")
data = {
"cells": PackedInt32Array(65531, 65531, 0, 65531, 65532, 0, 65531, 65533, 0, 65531, 65534, 0, 65531, 65535, 0, 65531, 0, 0, 65531, 1, 0, 65531, 2, 0, 65531, 3, 0, 65531, 4, 0, 65532, 65531, 0, 65532, 65532, 1, 65532, 65533, 1, 65532, 65534, 1, 65532, 65535, 1, 65532, 0, 1, 65532, 1, 1, 65532, 2, 1, 65532, 3, 1, 65532, 4, 0, 65533, 65531, 0, 65533, 65532, 1, 65533, 65533, 1, 65533, 65534, 1, 65533, 65535, 1, 65533, 0, 1, 65533, 1, 1, 65533, 2, 1, 65533, 3, 1, 65533, 4, 0, 65534, 65531, 0, 65534, 65532, 1, 65534, 65533, 1, 65534, 65534, 1, 65534, 65535, 1, 65534, 0, 1, 65534, 1, 1, 65534, 2, 1, 65534, 3, 1, 65534, 4, 0, 65535, 65531, 0, 65535, 65532, 1, 65535, 65533, 1, 65535, 65534, 1, 65535, 65535, 1, 65535, 0, 1, 65535, 1, 1, 65535, 2, 1, 65535, 3, 1, 65535, 4, 0, 0, 65531, 0, 0, 65532, 1, 0, 65533, 1, 0, 65534, 1, 0, 65535, 1, 0, 0, 1, 0, 1, 1, 0, 2, 1, 0, 3, 1, 0, 4, 0, 1, 65531, 0, 1, 65532, 1, 1, 65533, 1, 1, 65534, 1, 1, 65535, 1, 1, 0, 1, 1, 1, 1, 1, 2, 1, 1, 3, 1, 1, 4, 0, 2, 65531, 0, 2, 65532, 1, 2, 65533, 1, 2, 65534, 1, 2, 65535, 1, 2, 0, 1, 2, 1, 1, 2, 2, 1, 2, 3, 1, 2, 4, 0, 3, 65531, 0, 3, 65532, 1, 3, 65533, 1, 3, 65534, 1, 3, 65535, 1, 3, 0, 1, 3, 1, 1, 3, 2, 1, 3, 3, 1, 3, 4, 0, 4, 65531, 0, 4, 65532, 0, 4, 65533, 0, 4, 65534, 0, 4, 65535, 0, 4, 0, 0, 4, 1, 0, 4, 2, 0, 4, 3, 0, 4, 4, 0)
}
[node name="MonsterPath" type="Path3D" parent="." unique_id=432631624]
[node name="MonsterPath" type="Path3D" parent="." unique_id=432631624]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
curve = SubResource("Curve3D_path")
curve = SubResource("Curve3D_path")
...
...
src/entities/monsters/base_monster.gd
View file @
097a6fe6
...
@@ -137,12 +137,13 @@ func _create_hp_bar() -> void:
...
@@ -137,12 +137,13 @@ func _create_hp_bar() -> void:
# 3. Sprite3D 생성 (Viewport의 2D 렌더링 텍스처를 3D 공간에 띄움)
# 3. Sprite3D 생성 (Viewport의 2D 렌더링 텍스처를 3D 공간에 띄움)
var
sprite
:
Sprite3D
=
Sprite3D
.
new
()
var
sprite
:
Sprite3D
=
Sprite3D
.
new
()
sprite
.
billboard
=
BaseMaterial3D
.
BILLBOARD_ENABLED
# 카메라를 항상 마주하도록 설정
sprite
.
billboard
=
BaseMaterial3D
.
BILLBOARD_ENABLED
# 카메라를 항상 마주하도록 설정
sprite
.
position
=
Vector3
(
0.0
,
0.15
,
0.0
)
# 몬스터 발밑
오프셋
sprite
.
position
=
Vector3
(
0.0
,
1.8
,
0.0
)
# 몬스터 머리 위
오프셋
sprite
.
texture
=
viewport
.
get_texture
()
sprite
.
texture
=
viewport
.
get_texture
()
sprite
.
cast_shadow
=
GeometryInstance3D
.
SHADOW_CASTING_SETTING_OFF
# 그림자 연산 제외
sprite
.
cast_shadow
=
GeometryInstance3D
.
SHADOW_CASTING_SETTING_OFF
# 그림자 연산 제외
sprite
.
no_depth_test
=
false
# 지형이나 다른 장막 뒤에 가려지
도록 설정
sprite
.
no_depth_test
=
true
# 지형이나 다른 장막 뒤에 가려져도 언제나 보이
도록 설정
add_child
(
sprite
)
add_child
(
sprite
)
## 몬스터 이동 상태에 맞춘 애니메이션 재생 제어 (상속 클래스에서 재정의)
## 몬스터 이동 상태에 맞춘 애니메이션 재생 제어 (상속 클래스에서 재정의)
func
_update_monster_animation
()
->
void
:
func
_update_monster_animation
()
->
void
:
pass
pass
...
...
src/map/stages/stage_1_map.tscn
0 → 100644
View file @
097a6fe6
[gd_scene load_steps=2 format=3]
[ext_resource type="MeshLibrary" uid="uid://ddc7y16q0whgv" path="res://src/map/tile_mesh_library.tres" id="1_mesh_lib"]
[node name="Stage1Map" type="GridMap"]
mesh_library = ExtResource("1_mesh_lib")
data = {
"cells": PackedInt32Array(65531, 65531, 0, 65531, 65532, 0, 65531, 65533, 0, 65531, 65534, 0, 65531, 65535, 0, 65531, 0, 0, 65531, 1, 0, 65531, 2, 0, 65531, 3, 0, 65531, 4, 0, 65532, 65531, 0, 65532, 65532, 1, 65532, 65533, 1, 65532, 65534, 1, 65532, 65535, 1, 65532, 0, 1, 65532, 1, 1, 65532, 2, 1, 65532, 3, 1, 65532, 4, 0, 65533, 65531, 0, 65533, 65532, 1, 65533, 65533, 1, 65533, 65534, 1, 65533, 65535, 1, 65533, 0, 1, 65533, 1, 1, 65533, 2, 1, 65533, 3, 1, 65533, 4, 0, 65534, 65531, 0, 65534, 65532, 1, 65534, 65533, 1, 65534, 65534, 1, 65534, 65535, 1, 65534, 0, 1, 65534, 1, 1, 65534, 2, 1, 65534, 3, 1, 65534, 4, 0, 65535, 65531, 0, 65535, 65532, 1, 65535, 65533, 1, 65535, 65534, 1, 65535, 65535, 1, 65535, 0, 1, 65535, 1, 1, 65535, 2, 1, 65535, 3, 1, 65535, 4, 0, 0, 65531, 0, 0, 65532, 1, 0, 65533, 1, 0, 65534, 1, 0, 65535, 1, 0, 0, 1, 0, 1, 1, 0, 2, 1, 0, 3, 1, 0, 4, 0, 1, 65531, 0, 1, 65532, 1, 1, 65533, 1, 1, 65534, 1, 1, 65535, 1, 1, 0, 1, 1, 1, 1, 1, 2, 1, 1, 3, 1, 1, 4, 0, 2, 65531, 0, 2, 65532, 1, 2, 65533, 1, 2, 65534, 1, 2, 65535, 1, 2, 0, 1, 2, 1, 1, 2, 2, 1, 2, 3, 1, 2, 4, 0, 3, 65531, 0, 3, 65532, 1, 3, 65533, 1, 3, 65534, 1, 3, 65535, 1, 3, 0, 1, 3, 1, 1, 3, 2, 1, 3, 3, 1, 3, 4, 0, 4, 65531, 0, 4, 65532, 0, 4, 65533, 0, 4, 65534, 0, 4, 65535, 0, 4, 0, 0, 4, 1, 0, 4, 2, 0, 4, 3, 0, 4, 4, 0)
}
src/map/stages/stage_2_map.tscn
0 → 100644
View file @
097a6fe6
[gd_scene format=3 uid="uid://c6bjf48gd0dfv"]
[ext_resource type="MeshLibrary" uid="uid://cynw1xywjqb77" path="res://src/map/tile_mesh_library.tres" id="1_mesh_lib"]
[node name="Stage2Map" type="GridMap" unique_id=1363623219]
mesh_library = ExtResource("1_mesh_lib")
data = {
"cells": PackedInt32Array(65531, 65531, 3, 65531, 65532, 3, 65531, 65533, 3, 65531, 65534, 3, 65531, 65535, 3, 65531, 0, 3, 65531, 1, 3, 65531, 2, 3, 65531, 3, 3, 65531, 4, 3, 65532, 65531, 3, 65532, 65532, 2, 65532, 65533, 2, 65532, 65534, 2, 65532, 65535, 2, 65532, 0, 2, 65532, 1, 2, 65532, 2, 2, 65532, 3, 2, 65532, 4, 3, 65533, 65531, 3, 65533, 65532, 2, 65533, 65533, 2, 65533, 65534, 2, 65533, 65535, 2, 65533, 0, 2, 65533, 1, 2, 65533, 2, 2, 65533, 3, 2, 65533, 4, 3, 65534, 65531, 3, 65534, 65532, 2, 65534, 65533, 2, 65534, 65534, 2, 65534, 65535, 2, 65534, 0, 2, 65534, 1, 2, 65534, 2, 2, 65534, 3, 2, 65534, 4, 3, 65535, 65531, 3, 65535, 65532, 2, 65535, 65533, 2, 65535, 65534, 2, 65535, 65535, 2, 65535, 0, 2, 65535, 1, 2, 65535, 2, 2, 65535, 3, 2, 65535, 4, 3, 0, 65531, 3, 0, 65532, 2, 0, 65533, 2, 0, 65534, 2, 0, 65535, 2, 0, 0, 2, 0, 1, 2, 0, 2, 2, 0, 3, 2, 0, 4, 3, 1, 65531, 3, 1, 65532, 2, 1, 65533, 2, 1, 65534, 2, 1, 65535, 2, 1, 0, 2, 1, 1, 2, 1, 2, 2, 1, 3, 2, 1, 4, 3, 2, 65531, 3, 2, 65532, 2, 2, 65533, 2, 2, 65534, 2, 2, 65535, 2, 2, 0, 2, 2, 1, 2, 2, 2, 2, 2, 3, 2, 2, 4, 3, 3, 65531, 3, 3, 65532, 2, 3, 65533, 2, 3, 65534, 2, 3, 65535, 2, 3, 0, 2, 3, 1, 2, 3, 2, 2, 3, 3, 2, 3, 4, 3, 4, 65531, 3, 4, 65532, 3, 4, 65533, 3, 4, 65534, 3, 4, 65535, 3, 4, 0, 3, 4, 1, 3, 4, 2, 3, 4, 3, 3, 4, 4, 3)
}
src/map/tile_mesh_library.tres
View file @
097a6fe6
This diff is collapsed.
Click to expand it.
src/ui/stage_selection/stage_selection.gd
0 → 100644
View file @
097a6fe6
extends
Control
## 스테이지 선택 페이지 스크립트 (StageSelection)
## 소환사 선택 완료 후, 게임에 탑재할 맵 전장을 선택하는 독립 페이지입니다.
@
onready
var
btn_stage_1
:
Button
=
$
VBoxContainer
/
CardsHBox
/
Stage1Card
/
SelectStage1
@
onready
var
btn_stage_2
:
Button
=
$
VBoxContainer
/
CardsHBox
/
Stage2Card
/
SelectStage2
func
_ready
()
->
void
:
btn_stage_1
.
pressed
.
connect
(
_on_select_stage_1_pressed
)
btn_stage_2
.
pressed
.
connect
(
_on_select_stage_2_pressed
)
func
_on_select_stage_1_pressed
()
->
void
:
GameManager
.
selected_stage_id
=
"stage_1"
GameManager
.
selected_stage_map_path
=
"res://src/map/stages/stage_1_map.tscn"
_transition_to_main_game
()
func
_on_select_stage_2_pressed
()
->
void
:
GameManager
.
selected_stage_id
=
"stage_2"
GameManager
.
selected_stage_map_path
=
"res://src/map/stages/stage_2_map.tscn"
_transition_to_main_game
()
func
_transition_to_main_game
()
->
void
:
print
(
"StageSelection: Transitioning with stage_id: "
,
GameManager
.
selected_stage_id
,
" (Map: "
,
GameManager
.
selected_stage_map_path
,
")"
)
# SceneChanger 페이드 트랜지션 시스템을 활용하여 메인 게임 씬으로 이동
SceneChanger
.
change_scene_to_file
(
"res://src/core/main.tscn"
)
src/ui/stage_selection/stage_selection.gd.uid
0 → 100644
View file @
097a6fe6
uid://dbrefonikfeul
src/ui/stage_selection/stage_selection.tscn
0 → 100644
View file @
097a6fe6
[gd_scene load_steps=2 format=3]
[ext_resource type="Script" path="res://src/ui/stage_selection/stage_selection.gd" id="1_script"]
[node name="StageSelection" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_script")
[node name="Background" type="ColorRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.08, 0.08, 0.12, 0.95)
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -300.0
offset_top = -250.0
offset_right = 300.0
offset_bottom = 250.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = 40
alignment = 1
[node name="TitleLabel" type="Label" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 36
text = "SELECT YOUR STAGE"
horizontal_alignment = 1
[node name="CardsHBox" type="HBoxContainer" parent="VBoxContainer"]
layout_mode = 2
theme_override_constants/separation = 80
alignment = 1
[node name="Stage1Card" type="VBoxContainer" parent="VBoxContainer/CardsHBox"]
custom_minimum_size = Vector2(260, 0)
layout_mode = 2
theme_override_constants/separation = 15
alignment = 1
[node name="MapPreview" type="ColorRect" parent="VBoxContainer/CardsHBox/Stage1Card"]
custom_minimum_size = Vector2(240, 150)
layout_mode = 2
color = Color(0.68, 0.52, 0.32, 0.8)
[node name="Name" type="Label" parent="VBoxContainer/CardsHBox/Stage1Card"]
layout_mode = 2
theme_override_font_sizes/font_size = 24
text = "Desert Ruins"
horizontal_alignment = 1
[node name="Description" type="Label" parent="VBoxContainer/CardsHBox/Stage1Card"]
layout_mode = 2
theme_override_font_sizes/font_size = 14
text = "A harsh desert landscape
with sand dunes."
horizontal_alignment = 1
[node name="SelectStage1" type="Button" parent="VBoxContainer/CardsHBox/Stage1Card"]
custom_minimum_size = Vector2(180, 45)
layout_mode = 2
theme_override_font_sizes/font_size = 16
text = "Select Stage 1"
[node name="Stage2Card" type="VBoxContainer" parent="VBoxContainer/CardsHBox"]
custom_minimum_size = Vector2(260, 0)
layout_mode = 2
theme_override_constants/separation = 15
alignment = 1
[node name="MapPreview" type="ColorRect" parent="VBoxContainer/CardsHBox/Stage2Card"]
custom_minimum_size = Vector2(240, 150)
layout_mode = 2
color = Color(0.24, 0.56, 0.28, 0.8)
[node name="Name" type="Label" parent="VBoxContainer/CardsHBox/Stage2Card"]
layout_mode = 2
theme_override_font_sizes/font_size = 24
text = "Grassland Outpost"
horizontal_alignment = 1
[node name="Description" type="Label" parent="VBoxContainer/CardsHBox/Stage2Card"]
layout_mode = 2
theme_override_font_sizes/font_size = 14
text = "A peaceful green outpost
with grassy hills."
horizontal_alignment = 1
[node name="SelectStage2" type="Button" parent="VBoxContainer/CardsHBox/Stage2Card"]
custom_minimum_size = Vector2(180, 45)
layout_mode = 2
theme_override_font_sizes/font_size = 16
text = "Select Stage 2"
src/ui/summoner_selection/summoner_selection.gd
View file @
097a6fe6
...
@@ -48,5 +48,5 @@ func _on_select_warlock_pressed() -> void:
...
@@ -48,5 +48,5 @@ func _on_select_warlock_pressed() -> void:
func
_transition_to_main_game
()
->
void
:
func
_transition_to_main_game
()
->
void
:
print
(
"SummonerSelection: Selected summoner: "
,
GameManager
.
selected_summoner_data
.
summoner_name
)
print
(
"SummonerSelection: Selected summoner: "
,
GameManager
.
selected_summoner_data
.
summoner_name
)
# 페이지 이동:
SceneChanger 트랜지션 시스템 활용
# 페이지 이동:
소환사 선택 완료 후 스테이지 선택 씬으로 이동
SceneChanger
.
change_scene_to_file
(
"res://src/
core/mai
n.tscn"
)
SceneChanger
.
change_scene_to_file
(
"res://src/
ui/stage_selection/stage_selectio
n.tscn"
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment