diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room1.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room1.tscn index 38f57cb..205fa20 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room1.tscn +++ b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room1.tscn @@ -20,6 +20,7 @@ Type = 3 ItemId = "0001" Layer = 1 +BirthRect = Vector2i(100, 20) [node name="EnemyMark2" type="Node2D" parent="."] position = Vector2(0, 70) @@ -32,6 +33,7 @@ ItemId = "0001" Layer = 1 DelayTime = 2.0 +BirthRect = Vector2i(100, 20) [node name="EnemyMark3" type="Node2D" parent="."] position = Vector2(114, -54) diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room3.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room3.tscn index c69f646..5dcf9ca 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room3.tscn +++ b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room3.tscn @@ -17,6 +17,8 @@ Type = 3 ItemId = "0001" Layer = 1 +BirthRect = Vector2i(20, 20) +DrawColor = Color(1, 0, 0, 1) [node name="EnemyMark2" type="Node2D" parent="."] position = Vector2(261, 217) @@ -31,6 +33,7 @@ ResidueAmmo = 12 Type = 4 ItemId = "0002" +DrawColor = Color(0, 0, 1, 1) Altitude = 16 [node name="WeaponMark2" type="Node2D" parent="."] @@ -39,6 +42,7 @@ ResidueAmmo = 7 Type = 4 ItemId = "0003" +DrawColor = Color(0, 0, 1, 1) Altitude = 16 [node name="EnemyMark3" type="Node2D" parent="."] @@ -50,3 +54,4 @@ ItemId = "0001" Layer = 1 WaveNumber = 2 +DrawColor = Color(1, 0, 0, 1) diff --git a/DungeonShooting_Godot/resource/theme/mainTheme.tres b/DungeonShooting_Godot/resource/theme/mainTheme.tres index 1d329a0..6992241 100644 --- a/DungeonShooting_Godot/resource/theme/mainTheme.tres +++ b/DungeonShooting_Godot/resource/theme/mainTheme.tres @@ -352,7 +352,7 @@ [sub_resource type="ImageTexture" id="58"] -[sub_resource type="Image" id="Image_hjw7m"] +[sub_resource type="Image" id="Image_bwq3c"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 39, 255, 255, 255, 67, 255, 255, 255, 67, 255, 255, 255, 39, 255, 255, 255, 1, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 39, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 39, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 66, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 66, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 66, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 66, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 39, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 39, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 39, 255, 255, 255, 67, 255, 255, 255, 67, 255, 255, 255, 39, 255, 255, 255, 1, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -362,7 +362,7 @@ } [sub_resource type="ImageTexture" id="60"] -image = SubResource("Image_hjw7m") +image = SubResource("Image_bwq3c") [sub_resource type="StyleBoxTexture" id="61"] content_margin_left = 2.0 @@ -372,7 +372,7 @@ texture = SubResource("60") region_rect = Rect2(0, 0, 12, 12) -[sub_resource type="Image" id="Image_ak1j1"] +[sub_resource type="Image" id="Image_7g2og"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 247, 247, 247, 0, 248, 248, 248, 0, 248, 248, 248, 0, 247, 247, 247, 0, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 191, 191, 191, 4, 247, 247, 247, 98, 248, 248, 248, 167, 248, 248, 248, 167, 247, 247, 247, 98, 191, 191, 191, 4, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 247, 247, 0, 247, 247, 247, 97, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 247, 247, 247, 97, 247, 247, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, 248, 0, 248, 248, 248, 164, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 164, 248, 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, 248, 0, 248, 248, 248, 164, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 164, 248, 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 247, 247, 0, 247, 247, 247, 97, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 247, 247, 247, 97, 247, 247, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 191, 191, 191, 4, 247, 247, 247, 98, 248, 248, 248, 167, 248, 248, 248, 167, 247, 247, 247, 98, 191, 191, 191, 4, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 247, 247, 247, 0, 248, 248, 248, 0, 248, 248, 248, 0, 247, 247, 247, 0, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -382,7 +382,7 @@ } [sub_resource type="ImageTexture" id="63"] -image = SubResource("Image_ak1j1") +image = SubResource("Image_7g2og") [sub_resource type="StyleBoxTexture" id="64"] content_margin_left = 2.0 @@ -392,7 +392,7 @@ texture = SubResource("63") region_rect = Rect2(0, 0, 12, 12) -[sub_resource type="Image" id="Image_8tr7d"] +[sub_resource type="Image" id="Image_1bn5a"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 127, 127, 127, 4, 173, 173, 173, 97, 173, 173, 173, 166, 173, 173, 173, 166, 173, 173, 173, 97, 127, 127, 127, 4, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 0, 172, 172, 172, 96, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 172, 172, 172, 96, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 173, 173, 0, 173, 173, 173, 163, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 163, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 173, 173, 0, 173, 173, 173, 163, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 163, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 0, 172, 172, 172, 96, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 172, 172, 172, 96, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 127, 127, 127, 4, 173, 173, 173, 97, 173, 173, 173, 166, 173, 173, 173, 166, 173, 173, 173, 97, 127, 127, 127, 4, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -402,7 +402,7 @@ } [sub_resource type="ImageTexture" id="66"] -image = SubResource("Image_8tr7d") +image = SubResource("Image_1bn5a") [sub_resource type="StyleBoxTexture" id="67"] content_margin_left = 2.0 @@ -412,7 +412,7 @@ texture = SubResource("66") region_rect = Rect2(0, 0, 12, 12) -[sub_resource type="Image" id="Image_d01hu"] +[sub_resource type="Image" id="Image_w71i6"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 4, 255, 255, 255, 16, 255, 255, 255, 16, 255, 255, 255, 4, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 16, 255, 255, 255, 21, 255, 255, 255, 21, 255, 255, 255, 16, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 16, 255, 255, 255, 21, 255, 255, 255, 21, 255, 255, 255, 16, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 4, 255, 255, 255, 16, 255, 255, 255, 16, 255, 255, 255, 4, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -422,7 +422,7 @@ } [sub_resource type="ImageTexture" id="69"] -image = SubResource("Image_d01hu") +image = SubResource("Image_w71i6") [sub_resource type="StyleBoxTexture" id="70"] content_margin_left = 0.0 @@ -446,7 +446,7 @@ content_margin_right = 4.0 content_margin_bottom = 4.0 -[sub_resource type="Image" id="Image_5ym1c"] +[sub_resource type="Image" id="Image_aomlc"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 228, 255, 255, 255, 188, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 228, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 18, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 187, 255, 255, 255, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 187, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 18, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 17, 255, 255, 255, 17, 255, 255, 255, 186, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 190, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 185, 255, 255, 255, 229, 255, 255, 255, 189, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 191, 255, 255, 255, 229, 255, 255, 255, 229, 255, 255, 255, 190, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 187, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 187, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 18, 255, 255, 255, 19, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 186, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 185, 255, 255, 255, 229, 255, 255, 255, 189, 255, 255, 255, 19, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 189, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 229, 255, 255, 255, 190, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 190, 255, 255, 255, 229, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 77, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 77, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -456,7 +456,7 @@ } [sub_resource type="ImageTexture" id="56"] -image = SubResource("Image_5ym1c") +image = SubResource("Image_aomlc") [sub_resource type="StyleBoxFlat" id="57"] content_margin_left = 6.0 diff --git a/DungeonShooting_Godot/scene/Main.tscn b/DungeonShooting_Godot/scene/Main.tscn index 21417bf..23049fa 100644 --- a/DungeonShooting_Godot/scene/Main.tscn +++ b/DungeonShooting_Godot/scene/Main.tscn @@ -1,5 +1,6 @@ -[gd_scene load_steps=5 format=3 uid="uid://lbe753cb8heb"] +[gd_scene load_steps=6 format=3 uid="uid://lbe753cb8heb"] +[ext_resource type="PackedScene" uid="uid://degtollvmf37f" path="res://resource/map/tileMaps/testGroup/battle/Room1.tscn" id="2_b3k0t"] [ext_resource type="Script" path="res://src/game/GameApplication.cs" id="3"] [ext_resource type="Script" path="res://src/game/camera/GameCamera.cs" id="4_3gsi2"] @@ -26,6 +27,7 @@ SubViewportContainer = NodePath("ViewCanvas/SubViewportContainer") SceneRoot = NodePath("ViewCanvas/SubViewportContainer/SubViewport/SceneRoot") GlobalNodeRoot = NodePath("GlobalNodeRoot") +DesignatedRoom = Array[PackedScene]([ExtResource("2_b3k0t")]) [node name="ViewCanvas" type="CanvasLayer" parent="."] layer = -1 diff --git a/DungeonShooting_Godot/src/framework/generator/ResourcePathGenerator.cs b/DungeonShooting_Godot/src/framework/generator/ResourcePathGenerator.cs index dd4dfde..088ed07 100644 --- a/DungeonShooting_Godot/src/framework/generator/ResourcePathGenerator.cs +++ b/DungeonShooting_Godot/src/framework/generator/ResourcePathGenerator.cs @@ -15,7 +15,7 @@ //支持后缀 private static string[] suffix = { - ".png", ".jpg", ".txt", ".json", ".ini", ".tscn", ".tres", ".otf", ".gdshader", ".ogg", ".mp3", ".wav", ".svg" + ".png", ".jpg", ".txt", ".json", ".ini", ".tscn", ".tres", ".otf", ".gdshader", ".ogg", ".mp3", ".wav", ".svg", ".ttf", ".otf" }; //排除第一层的文件夹 private static string[] exclude = diff --git a/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs b/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs index 6fe35e7..380917d 100644 --- a/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs +++ b/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs @@ -21,7 +21,7 @@ /// /// 生成的房间数量 /// - private int _maxCount = 15; + private int _maxCount = 20; //用于标记地图上的坐标是否被占用 private Grid _roomGrid { get; } = new Grid(); @@ -63,7 +63,10 @@ //房间组名称 private string _groupName; private DungeonRoomGroup _roomGroup; - + + //指定只能生成的房间 + private static List _designatedRoom; + private enum GenerateRoomErrorCode { NoError, @@ -79,26 +82,40 @@ // NoProperDoor, } +#if TOOLS + /// + /// 用于调试, 设置生成器只能生成哪些房间 + /// + public static void SetDesignatedRoom(List list) + { + _designatedRoom = list; + } +#endif + public DungeonGenerator(string groupName) { _groupName = groupName; _roomGroup = GameApplication.Instance.RoomConfig[_groupName]; - + //验证该组是否满足生成地牢的条件 if (_roomGroup.InletList.Count == 0) { throw new Exception("当前组'" + groupName + "'中没有起始房间, 不能生成地牢!"); } - else if (_roomGroup.OutletList.Count == 0) + //没有指定房间 + if (_designatedRoom == null || _designatedRoom.Count == 0) { - throw new Exception("当前组'" + groupName + "'中没有结束房间, 不能生成地牢!"); - } - else if (_roomGroup.BattleList.Count == 0) - { - throw new Exception("当前组'" + groupName + "'中没有战斗房间, 不能生成地牢!"); + if (_roomGroup.OutletList.Count == 0) + { + throw new Exception("当前组'" + groupName + "'中没有结束房间, 不能生成地牢!"); + } + else if (_roomGroup.BattleList.Count == 0) + { + throw new Exception("当前组'" + groupName + "'中没有战斗房间, 不能生成地牢!"); + } } } - + /// /// 遍历所有房间 /// @@ -170,13 +187,23 @@ return GenerateRoomErrorCode.RoomFull; } - //随机选择一个房间 - var list = _roomGroup.GetRoomList(roomType); - if (list.Count == 0) //如果没有指定类型的房间, 就生成战斗房间 + DungeonRoomSplit roomSplit; + //没有指定房间 + if (roomType == DungeonRoomType.Inlet || _designatedRoom == null || _designatedRoom.Count == 0) { - list = _roomGroup.BattleList; + //随机选择一个房间 + var list = _roomGroup.GetRoomList(roomType); + if (list.Count == 0) //如果没有指定类型的房间, 就生成战斗房间 + { + list = _roomGroup.BattleList; + } + roomSplit = Utils.RandomChoose(list); } - var roomSplit = Utils.RandomChoose(list); + else //指定了房间 + { + roomSplit = Utils.RandomChoose(_designatedRoom); + } + var room = new RoomInfo(_count, roomSplit); //房间大小 diff --git a/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs b/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs index 417e48b..47c852e 100644 --- a/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs +++ b/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs @@ -39,6 +39,18 @@ public float DelayTime = 0; /// + /// 物体会在该矩形区域内随机位置生成 + /// + [Export] + public Vector2I BirthRect = Vector2I.Zero; + + /// + /// 绘制的颜色 + /// + [Export] + public Color DrawColor = new Color(1, 1, 1, 1); + + /// /// 物体初始海拔高度 /// [ExportGroup("Vertical")] @@ -55,11 +67,6 @@ /// 当前标记所在Tile节点 /// public TileMap TileRoot; - - /// - /// 绘制的颜色 - /// - protected Color DrawColor = new Color(0.4F, 0.56078434F, 0.8784314F); //是否已经结束 private bool _isOver = true; @@ -67,6 +74,9 @@ private float _timer = 0; private RoomInfo _tempRoom; + //绘制的字体 + private static Font _drawFont; + /// /// 获取物体Id /// @@ -149,7 +159,19 @@ protected ActivityObject CreateActivityObject() { var instance = ActivityObject.Create(GetItemId()); - instance.Position = Position; + var pos = Position; + if (BirthRect != Vector2I.Zero) + { + instance.Position = new Vector2( + Utils.RandomRangeInt((int)pos.X - BirthRect.X / 2, (int)pos.X + BirthRect.X / 2), + Utils.RandomRangeInt((int)pos.Y - BirthRect.Y / 2, (int)pos.Y + BirthRect.Y / 2) + ); + } + else + { + instance.Position = pos; + } + instance.VerticalSpeed = VerticalSpeed; instance.Altitude = Altitude; return instance; @@ -160,8 +182,21 @@ { if (Engine.IsEditorHint() || GameApplication.Instance.Debug) { - DrawLine(new Vector2(-5, -5), new Vector2(5, 5), DrawColor, 2f); - DrawLine(new Vector2(-5, 5), new Vector2(5, -5), DrawColor, 2f); + DrawLine(new Vector2(-2, -2), new Vector2(2, 2), DrawColor, 1f); + DrawLine(new Vector2(-2, 2), new Vector2(2, -2), DrawColor, 1f); + + if (BirthRect != Vector2.Zero) + { + var c = DrawColor; + c.A = 0.5f; + DrawRect(new Rect2(-BirthRect / 2, BirthRect), c, false, 0.5f); + } + + if (_drawFont == null) + { + _drawFont = ResourceManager.Load(ResourcePath.Silver_ttf); + } + DrawString(_drawFont, new Vector2(-14, 12), WaveNumber.ToString(), HorizontalAlignment.Center, 28, 14); } } #endif diff --git a/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs b/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs index 8165a49..8359e1a 100644 --- a/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs +++ b/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs @@ -50,7 +50,6 @@ public override void _Ready() { - DrawColor = Colors.Red; Type = ActivityIdPrefix.ActivityPrefixType.Enemy; Layer = RoomLayerEnum.YSortLayer; } diff --git a/DungeonShooting_Godot/src/framework/map/mark/PlayerBirthMark.cs b/DungeonShooting_Godot/src/framework/map/mark/PlayerBirthMark.cs index fd51265..b654732 100644 --- a/DungeonShooting_Godot/src/framework/map/mark/PlayerBirthMark.cs +++ b/DungeonShooting_Godot/src/framework/map/mark/PlayerBirthMark.cs @@ -9,7 +9,6 @@ { public override void _Ready() { - DrawColor = Colors.Green; } public override void Doing(RoomInfo roomInfo) diff --git a/DungeonShooting_Godot/src/game/GameApplication.cs b/DungeonShooting_Godot/src/game/GameApplication.cs index 56802c0..78c8b1d 100644 --- a/DungeonShooting_Godot/src/game/GameApplication.cs +++ b/DungeonShooting_Godot/src/game/GameApplication.cs @@ -1,4 +1,5 @@ +using System; using System.Collections.Generic; using System.Text.Json; using Godot; @@ -31,6 +32,13 @@ /// 全局根节点 /// [Export] public Node2D GlobalNodeRoot; + + /// + /// 测试用, 指定生成的房间 + /// + [ExportGroup("Test")] + [Export] + public PackedScene[] DesignatedRoom; /// /// 鼠标指针 @@ -48,6 +56,11 @@ public Dictionary RoomConfig { get; private set; } /// + /// 房间配置数据, key: 模板房间资源路径 + /// + public Dictionary RoomConfigMap { get; private set; } + + /// /// 游戏视图大小 /// public Vector2 ViewportSize { get; private set; } = new Vector2(480, 270); @@ -81,6 +94,10 @@ GetWindow().SizeChanged += OnWindowSizeChanged; RefreshSubViewportSize(); +#if TOOLS + InitDesignatedRoom(); +#endif + //初始化ui UiManager.Init(); @@ -132,6 +149,19 @@ var asText = file.GetAsText(); RoomConfig = JsonSerializer.Deserialize>(asText); file.Dispose(); + + //初始化RoomConfigMap + RoomConfigMap = new Dictionary(); + foreach (var dungeonRoomGroup in RoomConfig) + { + foreach (var dungeonRoomType in Enum.GetValues()) + { + foreach (var dungeonRoomSplit in dungeonRoomGroup.Value.GetRoomList(dungeonRoomType)) + { + RoomConfigMap.Add(dungeonRoomSplit.ScenePath, dungeonRoomSplit); + } + } + } } //窗体大小改变 @@ -152,4 +182,24 @@ SubViewportContainer.Scale = new Vector2(PixelScale, PixelScale); SubViewportContainer.Size = s; } + +#if TOOLS + //调试模式下, 指定生成哪些房间 + private void InitDesignatedRoom() + { + if (DesignatedRoom != null && DesignatedRoom.Length > 0) + { + var list = new List(); + foreach (var packedScene in DesignatedRoom) + { + if (RoomConfigMap.TryGetValue(packedScene.ResourcePath, out var dungeonRoomSplit)) + { + list.Add(dungeonRoomSplit); + } + } + DungeonGenerator.SetDesignatedRoom(list); + } + } +#endif + } diff --git a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs index 415bfb9..7d89582 100644 --- a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs +++ b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs @@ -17,7 +17,6 @@ public const string prefab_test_MoveComponent_tscn = "res://prefab/test/MoveComponent.tscn"; public const string prefab_test_TestActivity_tscn = "res://prefab/test/TestActivity.tscn"; public const string prefab_ui_EditorTools_tscn = "res://prefab/ui/EditorTools.tscn"; - public const string prefab_ui_MyUi_tscn = "res://prefab/ui/MyUi.tscn"; public const string prefab_ui_RoomUI_tscn = "res://prefab/ui/RoomUI.tscn"; public const string prefab_weapon_Knife_tscn = "res://prefab/weapon/Knife.tscn"; public const string prefab_weapon_Weapon_tscn = "res://prefab/weapon/Weapon.tscn"; @@ -35,18 +34,22 @@ public const string resource_font_cn_font_18_tres = "res://resource/font/cn_font_18.tres"; public const string resource_font_cn_font_36_tres = "res://resource/font/cn_font_36.tres"; public const string resource_map_RoomConfig_json = "res://resource/map/RoomConfig.json"; - public const string resource_map_tiledata_Room1_json = "res://resource/map/tiledata/Room1.json"; - public const string resource_map_tiledata_Room2_json = "res://resource/map/tiledata/Room2.json"; - public const string resource_map_tiledata_Room3_json = "res://resource/map/tiledata/Room3.json"; - public const string resource_map_tiledata_Room4_json = "res://resource/map/tiledata/Room4.json"; - public const string resource_map_tiledata_Room5_json = "res://resource/map/tiledata/Room5.json"; - public const string resource_map_tiledata_Room6_json = "res://resource/map/tiledata/Room6.json"; - public const string resource_map_tileMaps_Room1_tscn = "res://resource/map/tileMaps/Room1.tscn"; - public const string resource_map_tileMaps_Room2_tscn = "res://resource/map/tileMaps/Room2.tscn"; - public const string resource_map_tileMaps_Room3_tscn = "res://resource/map/tileMaps/Room3.tscn"; - public const string resource_map_tileMaps_Room4_tscn = "res://resource/map/tileMaps/Room4.tscn"; - public const string resource_map_tileMaps_Room5_tscn = "res://resource/map/tileMaps/Room5.tscn"; - public const string resource_map_tileMaps_Room6_tscn = "res://resource/map/tileMaps/Room6.tscn"; + public const string resource_map_tiledata_testGroup_battle_Room1_json = "res://resource/map/tiledata/testGroup/battle/Room1.json"; + public const string resource_map_tiledata_testGroup_battle_Room2_json = "res://resource/map/tiledata/testGroup/battle/Room2.json"; + public const string resource_map_tiledata_testGroup_battle_Room3_json = "res://resource/map/tiledata/testGroup/battle/Room3.json"; + public const string resource_map_tiledata_testGroup_battle_Room4_json = "res://resource/map/tiledata/testGroup/battle/Room4.json"; + public const string resource_map_tiledata_testGroup_battle_Room5_json = "res://resource/map/tiledata/testGroup/battle/Room5.json"; + public const string resource_map_tiledata_testGroup_battle_Room6_json = "res://resource/map/tiledata/testGroup/battle/Room6.json"; + public const string resource_map_tiledata_testGroup_inlet_Room1_json = "res://resource/map/tiledata/testGroup/inlet/Room1.json"; + public const string resource_map_tiledata_testGroup_outlet_Room1_json = "res://resource/map/tiledata/testGroup/outlet/Room1.json"; + public const string resource_map_tileMaps_testGroup_battle_Room1_tscn = "res://resource/map/tileMaps/testGroup/battle/Room1.tscn"; + public const string resource_map_tileMaps_testGroup_battle_Room2_tscn = "res://resource/map/tileMaps/testGroup/battle/Room2.tscn"; + public const string resource_map_tileMaps_testGroup_battle_Room3_tscn = "res://resource/map/tileMaps/testGroup/battle/Room3.tscn"; + public const string resource_map_tileMaps_testGroup_battle_Room4_tscn = "res://resource/map/tileMaps/testGroup/battle/Room4.tscn"; + public const string resource_map_tileMaps_testGroup_battle_Room5_tscn = "res://resource/map/tileMaps/testGroup/battle/Room5.tscn"; + public const string resource_map_tileMaps_testGroup_battle_Room6_tscn = "res://resource/map/tileMaps/testGroup/battle/Room6.tscn"; + public const string resource_map_tileMaps_testGroup_inlet_Room1_tscn = "res://resource/map/tileMaps/testGroup/inlet/Room1.tscn"; + public const string resource_map_tileMaps_testGroup_outlet_Room1_tscn = "res://resource/map/tileMaps/testGroup/outlet/Room1.tscn"; public const string resource_map_tileset_TileSet1_tres = "res://resource/map/tileset/TileSet1.tres"; public const string resource_materlal_Blend_gdshader = "res://resource/materlal/Blend.gdshader"; public const string resource_materlal_Blend_tres = "res://resource/materlal/Blend.tres"; @@ -277,5 +280,6 @@ public const string default_bus_layout_tres = "res://default_bus_layout.tres"; public const string default_env_tres = "res://default_env.tres"; public const string icon_png = "res://icon.png"; + public const string Silver_ttf = "res://Silver.ttf"; public const string SourceHanSerifCNSemiBold_otf = "res://SourceHanSerifCN-SemiBold.otf"; } \ No newline at end of file