diff --git a/DungeonShooting_Godot/resource/map/RoomConfig.json b/DungeonShooting_Godot/resource/map/RoomConfig.json
index 4b642be..8eb892d 100644
--- a/DungeonShooting_Godot/resource/map/RoomConfig.json
+++ b/DungeonShooting_Godot/resource/map/RoomConfig.json
@@ -11,7 +11,28 @@
         "X": 21,
         "Y": 21
       },
-      "DoorAreaInfos": []
+      "DoorAreaInfos": [
+        {
+          "Direction": 3,
+          "Start": 16,
+          "End": 80
+        },
+        {
+          "Direction": 2,
+          "Start": 64,
+          "End": 272
+        },
+        {
+          "Direction": 1,
+          "Start": 16,
+          "End": 320
+        },
+        {
+          "Direction": 3,
+          "Start": 208,
+          "End": 320
+        }
+      ]
     }
   }
 ]
\ No newline at end of file
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Room3.tscn b/DungeonShooting_Godot/resource/map/tileMaps/Room3.tscn
index 2e4a3fb..25fb9b8 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/Room3.tscn
+++ b/DungeonShooting_Godot/resource/map/tileMaps/Room3.tscn
@@ -8,3 +8,4 @@
 format = 2
 layer_0/tile_data = PackedInt32Array(1048594, 0, 8, 983058, 0, 8, 917522, 0, 8, 851986, 0, 8, 786450, 0, 8, 720914, 0, 8, 655378, 0, 8, 589842, 0, 8, 524306, 0, 8, 458770, 0, 8, 393234, 0, 8, 327698, 0, 8, 262162, 0, 8, 196626, 0, 8, 131090, 0, 8, 65554, 0, 8, 18, 0, 8, 1048593, 0, 8, 983057, 0, 8, 917521, 0, 8, 851985, 0, 8, 786449, 0, 8, 720913, 0, 8, 655377, 0, 8, 589841, 0, 8, 524305, 0, 8, 458769, 0, 8, 393233, 0, 8, 327697, 0, 8, 262161, 0, 8, 196625, 0, 8, 131089, 0, 8, 65553, 0, 8, 17, 0, 8, 1048592, 0, 8, 983056, 0, 8, 917520, 0, 8, 851984, 0, 8, 786448, 0, 8, 720912, 0, 8, 655376, 0, 8, 589840, 0, 8, 524304, 0, 8, 458768, 0, 8, 393232, 0, 8, 327696, 0, 8, 262160, 0, 8, 196624, 0, 8, 131088, 0, 8, 65552, 0, 8, 16, 0, 8, 1048591, 0, 8, 655375, 0, 8, 589839, 0, 8, 524303, 0, 8, 131087, 0, 8, 65551, 0, 8, 15, 0, 8, 1048590, 0, 8, 655374, 0, 8, 589838, 0, 8, 524302, 0, 8, 131086, 0, 8, 65550, 0, 8, 14, 0, 8, 1048589, 0, 8, 655373, 0, 8, 589837, 0, 8, 524301, 0, 8, 131085, 0, 8, 65549, 0, 8, 13, 0, 8, 1048588, 0, 8, 655372, 0, 8, 589836, 0, 8, 131084, 0, 8, 65548, 0, 8, 12, 0, 8, 1048587, 0, 8, 655371, 0, 8, 589835, 0, 8, 131083, 0, 8, 65547, 0, 8, 11, 0, 8, 1048586, 0, 8, 983050, 0, 8, 917514, 0, 8, 851978, 0, 8, 786442, 0, 8, 720906, 0, 8, 655370, 0, 8, 589834, 0, 8, 131082, 0, 8, 65546, 0, 8, 10, 0, 8, 1048585, 0, 8, 983049, 0, 8, 917513, 0, 8, 851977, 0, 8, 786441, 0, 8, 720905, 0, 8, 655369, 0, 8, 589833, 0, 8, 131081, 0, 8, 65545, 0, 8, 9, 0, 8, 1048584, 0, 8, 983048, 0, 8, 917512, 0, 8, 851976, 0, 8, 786440, 0, 8, 720904, 0, 8, 655368, 0, 8, 589832, 0, 8, 131080, 0, 8, 65544, 0, 8, 8, 0, 8, 1048583, 0, 8, 655367, 0, 8, 589831, 0, 8, 65543, 0, 8, 7, 0, 8, 1048582, 0, 8, 655366, 0, 8, 589830, 0, 8, 65542, 0, 8, 6, 0, 8, 1048581, 0, 8, 655365, 0, 8, 589829, 0, 8, 65541, 0, 8, 5, 0, 8, 1048580, 0, 8, 655364, 0, 8, 589828, 0, 8, 65540, 0, 8, 4, 0, 8, 1048579, 0, 8, 655363, 0, 8, 589827, 0, 8, 65539, 0, 8, 3, 0, 8, 1048578, 0, 8, 983042, 0, 8, 917506, 0, 8, 851970, 0, 8, 786434, 0, 8, 720898, 0, 8, 655362, 0, 8, 589826, 0, 8, 131074, 0, 8, 65538, 0, 8, 2, 0, 8, 1048577, 0, 8, 983041, 0, 8, 917505, 0, 8, 851969, 0, 8, 786433, 0, 8, 720897, 0, 8, 655361, 0, 8, 589825, 0, 8, 524289, 0, 8, 458753, 0, 8, 393217, 0, 8, 327681, 0, 8, 262145, 0, 8, 196609, 0, 8, 131073, 0, 8, 65537, 0, 8, 1, 0, 8, 1048576, 0, 8, 983040, 0, 8, 917504, 0, 8, 851968, 0, 8, 786432, 0, 8, 720896, 0, 8, 655360, 0, 8, 589824, 0, 8, 524288, 0, 8, 458752, 0, 8, 393216, 0, 8, 327680, 0, 8, 262144, 0, 8, 196608, 0, 8, 131072, 0, 8, 65536, 0, 8, 0, 0, 8, 131071, 196608, 3, 65535, 196608, 3, -1, 196608, 4, -65536, 131072, 7, -65535, 131072, 7, 196607, 196608, 3, 262143, 196608, 3, 327679, 196608, 3, 393215, 196608, 3, 458751, 196608, 3, 524287, 196608, 3, 589823, 196608, 3, 655359, 196608, 3, 720895, 196608, 3, 786431, 196608, 3, 851967, 196608, 3, 917503, 196608, 3, 983039, 196608, 3, 1048575, 196608, 3, 1114111, 196608, 3, -65534, 131072, 7, -65533, 131072, 7, -65532, 131072, 7, -65531, 131072, 7, -65530, 131072, 7, -65529, 131072, 7, -65528, 131072, 7, -65527, 131072, 7, -65526, 131072, 7, -65525, 131072, 7, -65524, 131072, 7, -65523, 131072, 7, -65522, 131072, 7, -65521, 131072, 7, -65520, 131072, 7, -65519, 131072, 7, -65518, 131072, 7, -65517, 65536, 4, 524300, 0, 8, 524299, 0, 8, 524298, 0, 8, 458762, 0, 8, 393226, 0, 8, 327690, 0, 8, 262154, 0, 8, 196618, 0, 8, 524297, 0, 8, 458761, 0, 8, 393225, 0, 8, 327689, 0, 8, 262153, 0, 8, 196617, 0, 8, 524296, 0, 8, 458760, 0, 8, 393224, 0, 8, 327688, 0, 8, 262152, 0, 8, 196616, 0, 8, 524295, 0, 8, 524294, 0, 8, 524293, 0, 8, 524292, 0, 8, 524291, 0, 8, 524290, 0, 8, 458754, 0, 8, 393218, 0, 8, 327682, 0, 8, 262146, 0, 8, 196610, 0, 8, 131079, 0, 8, 131078, 0, 8, 131077, 0, 8, 131076, 0, 8, 131075, 0, 8, 1179666, 0, 8, 1114130, 0, 8, 1179665, 0, 8, 1114129, 0, 8, 1179664, 0, 8, 1114128, 0, 8, 1179663, 0, 8, 1114127, 0, 8, 1179662, 0, 8, 1114126, 0, 8, 1179661, 0, 8, 1114125, 0, 8, 1179660, 0, 8, 1114124, 0, 8, 1179659, 0, 8, 1114123, 0, 8, 1179658, 0, 8, 1114122, 0, 8, 1179657, 0, 8, 1114121, 0, 8, 1179656, 0, 8, 1114120, 0, 8, 1179655, 0, 8, 1114119, 0, 8, 1179654, 0, 8, 1114118, 0, 8, 1179653, 0, 8, 1114117, 0, 8, 1179652, 0, 8, 1114116, 0, 8, 1179651, 0, 8, 1114115, 0, 8, 1179650, 0, 8, 1114114, 0, 8, 1179649, 0, 8, 1114113, 0, 8, 1179648, 0, 8, 1114112, 0, 8, 1179647, 196608, 3, 1245183, 196608, 3, 983043, 65536, 7, 983044, 131072, 7, 983045, 131072, 7, 983046, 131072, 7, 983047, 196608, 7, 720899, 65536, 2, 786435, 65536, 3, 851971, 65536, 3, 917507, 65536, 3, 196611, 65536, 2, 262147, 65536, 3, 327683, 65536, 3, 393219, 65536, 3, 458755, 65536, 7, 262151, 196608, 3, 196615, 196608, 2, 327687, 196608, 3, 393223, 196608, 3, 458759, 196608, 7, 196612, 131072, 2, 196613, 131072, 2, 196614, 131072, 2, 458756, 131072, 7, 458757, 131072, 7, 458758, 131072, 7, 720900, 131072, 2, 720901, 131072, 2, 720902, 131072, 2, 720903, 196608, 2, 786439, 196608, 3, 851975, 196608, 3, 917511, 196608, 3, 1245185, 131072, 2, 1245184, 131072, 2, 1310719, 720896, 2, 1245186, 131072, 2, 1245187, 131072, 2, 1245188, 131072, 2, 1245189, 131072, 2, 1245190, 131072, 2, 1245191, 131072, 2, 1245192, 131072, 2, 1245193, 131072, 2, 1245194, 131072, 2, 1245195, 131072, 2, 1245196, 131072, 2, 1245197, 131072, 2, 1245198, 131072, 2, 1245199, 131072, 2, 1245200, 131072, 2, 1245201, 131072, 2, 1245202, 131072, 2, 1245203, 851968, 2, 720907, 65536, 2, 786443, 65536, 3, 851979, 65536, 3, 917515, 65536, 3, 983051, 65536, 7, 196619, 65536, 2, 262155, 65536, 3, 327691, 65536, 3, 393227, 65536, 3, 458763, 65536, 7, 196620, 131072, 2, 196621, 131072, 2, 196622, 131072, 2, 196623, 196608, 2, 262159, 196608, 3, 327695, 196608, 3, 393231, 196608, 3, 458767, 196608, 7, 720911, 196608, 2, 786447, 196608, 3, 851983, 196608, 3, 917519, 196608, 3, 983055, 196608, 7, 458764, 131072, 7, 720908, 131072, 2, 458765, 131072, 7, 720909, 131072, 2, 458766, 131072, 7, 720910, 131072, 2, 983052, 131072, 7, 983053, 131072, 7, 983054, 131072, 7, 19, 65536, 3, 65555, 65536, 3, 131091, 65536, 3, 196627, 65536, 3, 262163, 65536, 3, 327699, 65536, 3, 393235, 65536, 3, 458771, 65536, 3, 524307, 65536, 3, 589843, 65536, 3, 655379, 65536, 3, 720915, 65536, 3, 786451, 65536, 3, 851987, 65536, 3, 917523, 65536, 3, 983059, 65536, 3, 1048595, 65536, 3, 1114131, 65536, 3, 1179667, 65536, 3)
 script = ExtResource("1_n5qca")
+metadata/_edit_vertical_guides_ = [255.0]
diff --git a/DungeonShooting_Godot/resource/map/tiledata/Room3.json b/DungeonShooting_Godot/resource/map/tiledata/Room3.json
index caf604a..10fd0cf 100644
--- a/DungeonShooting_Godot/resource/map/tiledata/Room3.json
+++ b/DungeonShooting_Godot/resource/map/tiledata/Room3.json
@@ -10,8 +10,8 @@
   "DoorAreaInfos": [
     {
       "Direction": 3,
-      "Start": 64,
-      "End": 128
+      "Start": 16,
+      "End": 80
     },
     {
       "Direction": 2,
@@ -26,7 +26,7 @@
     {
       "Direction": 3,
       "Start": 208,
-      "End": 272
+      "End": 320
     }
   ]
 }
\ No newline at end of file
diff --git a/DungeonShooting_Godot/resource/theme/mainTheme.tres b/DungeonShooting_Godot/resource/theme/mainTheme.tres
index abf0cb5..2f76416 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_qgq1m"]
+[sub_resource type="Image" id="Image_ru6ow"]
 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_qgq1m")
+image = SubResource("Image_ru6ow")
 
 [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_7xtrh"]
+[sub_resource type="Image" id="Image_tolgg"]
 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_7xtrh")
+image = SubResource("Image_tolgg")
 
 [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_cbcwh"]
+[sub_resource type="Image" id="Image_ikl8y"]
 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_cbcwh")
+image = SubResource("Image_ikl8y")
 
 [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_h0hjh"]
+[sub_resource type="Image" id="Image_dr62o"]
 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_h0hjh")
+image = SubResource("Image_dr62o")
 
 [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_6edt7"]
+[sub_resource type="Image" id="Image_2p7lp"]
 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_6edt7")
+image = SubResource("Image_2p7lp")
 
 [sub_resource type="StyleBoxFlat" id="57"]
 content_margin_left = 6.0
diff --git a/DungeonShooting_Godot/src/framework/map/DoorAreaInfo.cs b/DungeonShooting_Godot/src/framework/map/DoorAreaInfo.cs
index d3ca5e5..1c3c93e 100644
--- a/DungeonShooting_Godot/src/framework/map/DoorAreaInfo.cs
+++ b/DungeonShooting_Godot/src/framework/map/DoorAreaInfo.cs
@@ -13,16 +13,48 @@
     [JsonInclude]
     public DoorDirection Direction;
     /// <summary>
-    /// 起始位置, 相对 tilemap 自身的横/纵轴原点
+    /// 起始位置, 相对 tilemap 的横/纵轴原点, 单位像素
     /// </summary>
     [JsonInclude]
     public float Start = 0;
     /// <summary>
-    /// 结束位置, 相对 tilemap 自身的横/纵轴原点
+    /// 结束位置, 相对 tilemap 的横/纵轴原点, 单位像素
     /// </summary>
     [JsonInclude]
     public float End = 1;
     
+    /// <summary>
+    /// 起始点坐标, 该坐标位世界坐标, 单位像素, 不参与序列化与反序列化
+    /// </summary>
     public Vector2 StartPosition;
+    /// <summary>
+    /// 结束点坐标, 该坐标位世界坐标, 单位像素, 不参与序列化与反序列化
+    /// </summary>
     public Vector2 EndPosition;
+
+    /// <summary>
+    /// 自动计算 startPosition 和 endPosition
+    /// </summary>
+    public void CalcPosition(Vector2 rootPosition, Vector2 rootSize)
+    {
+        switch (Direction)
+        {
+            case DoorDirection.E:
+                StartPosition = new Vector2(rootPosition.X, rootPosition.Y + Start);
+                EndPosition = new Vector2(rootPosition.X, rootPosition.Y + End);
+                break;
+            case DoorDirection.W:
+                StartPosition = new Vector2(rootPosition.X + rootSize.X, rootPosition.Y + Start);
+                EndPosition = new Vector2(rootPosition.X + rootSize.X, rootPosition.Y + End);
+                break;
+            case DoorDirection.S:
+                StartPosition = new Vector2(rootPosition.X + Start, rootPosition.Y + rootSize.Y);
+                EndPosition = new Vector2(rootPosition.X + End, rootPosition.Y + rootSize.Y);
+                break;
+            case DoorDirection.N:
+                StartPosition = new Vector2(rootPosition.X + Start, rootPosition.Y);
+                EndPosition = new Vector2(rootPosition.X + End, rootPosition.Y);
+                break;
+        }
+    }
 }
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/framework/map/DungeonRoomTemplate.cs b/DungeonShooting_Godot/src/framework/map/DungeonRoomTemplate.cs
index 179d418..c25dfed 100644
--- a/DungeonShooting_Godot/src/framework/map/DungeonRoomTemplate.cs
+++ b/DungeonShooting_Godot/src/framework/map/DungeonRoomTemplate.cs
@@ -674,25 +674,7 @@
                 //填充 StartPosition 和 EndPosition 数据
                 foreach (var doorAreaInfo in roomInfo.DoorAreaInfos)
                 {
-                    switch (doorAreaInfo.Direction)
-                    {
-                        case DoorDirection.E:
-                            doorAreaInfo.StartPosition = new Vector2(mapRect.Position.X, mapRect.Position.Y + doorAreaInfo.Start);
-                            doorAreaInfo.EndPosition = new Vector2(mapRect.Position.X, mapRect.Position.Y + doorAreaInfo.End);
-                            break;
-                        case DoorDirection.W:
-                            doorAreaInfo.StartPosition = new Vector2(mapRect.Position.X + mapRect.Size.X, mapRect.Position.Y + doorAreaInfo.Start);
-                            doorAreaInfo.EndPosition = new Vector2(mapRect.Position.X + mapRect.Size.X, mapRect.Position.Y + doorAreaInfo.End);
-                            break;
-                        case DoorDirection.S:
-                            doorAreaInfo.StartPosition = new Vector2(mapRect.Position.X + doorAreaInfo.Start, mapRect.Position.Y + mapRect.Size.Y);
-                            doorAreaInfo.EndPosition = new Vector2(mapRect.Position.X + doorAreaInfo.End, mapRect.Position.Y + mapRect.Size.Y);
-                            break;
-                        case DoorDirection.N:
-                            doorAreaInfo.StartPosition = new Vector2(mapRect.Position.X + doorAreaInfo.Start, mapRect.Position.Y);
-                            doorAreaInfo.EndPosition = new Vector2(mapRect.Position.X + doorAreaInfo.End, mapRect.Position.Y);
-                            break;
-                    }
+                    doorAreaInfo.CalcPosition(mapRect.Position, mapRect.Size);
                 }
                 return roomInfo.DoorAreaInfos;
             }
diff --git a/DungeonShooting_Godot/src/framework/map/GenerateDungeon.cs b/DungeonShooting_Godot/src/framework/map/GenerateDungeon.cs
index 198ba76..b8a988d 100644
--- a/DungeonShooting_Godot/src/framework/map/GenerateDungeon.cs
+++ b/DungeonShooting_Godot/src/framework/map/GenerateDungeon.cs
@@ -259,7 +259,6 @@
         //这种情况下x轴有重叠
         if (overlapX >= 6)
         {
-            
             //找到重叠区域
             var range = CalcOverlapRange(room.Position.X, room.Position.X + room.Size.X,
                 nextRoom.Position.X, nextRoom.Position.X + nextRoom.Size.X);
@@ -267,6 +266,8 @@
 
             if (room.Position.Y < nextRoom.Position.Y) //room在上, nextRoom在下
             {
+                FindPassage(room, nextRoom, DoorDirection.S, out var result);
+                
                 roomDoor.Direction = DoorDirection.S;
                 nextRoomDoor.Direction = DoorDirection.N;
                 roomDoor.OriginPosition = new Vector2(x, room.Position.Y + room.Size.Y);
@@ -274,6 +275,8 @@
             }
             else //room在下, nextRoom在上
             {
+                FindPassage(room, nextRoom, DoorDirection.N, out var result);
+                
                 roomDoor.Direction = DoorDirection.N;
                 nextRoomDoor.Direction = DoorDirection.S;
                 roomDoor.OriginPosition = new Vector2(x, room.Position.Y);
@@ -480,6 +483,21 @@
                         break;
                     case DoorDirection.S: //第二个门向↑
                         
+                        foreach (var doorAreaInfo2 in room2.DoorAreaInfos)
+                        {
+                            if (doorAreaInfo2.Direction == DoorDirection.N)
+                            {
+                                var range = CalcOverlapRange(
+                                    room.Position.X + doorAreaInfo1.Start, room.Position.X + doorAreaInfo1.End,
+                                    nextRoom.Position.X + doorAreaInfo2.Start, nextRoom.Position.X + doorAreaInfo2.End
+                                    );
+                                if (range.Y - range.X >= 16 * 4)
+                                {
+                                    GD.Print("找打了!!!");
+                                }
+                            }
+                        }
+
                         break;
                     case DoorDirection.N: //第二个门向↓
                         
@@ -492,7 +510,9 @@
         return false;
     }
     
-    //用于计算重叠区域坐标, 可以理解为一维轴上4个点的中间两个点
+    /// <summary>
+    /// 用于计算重叠区域坐标, 可以理解为一维轴上4个点的中间两个点, 返回的x为起始点, y为结束点
+    /// </summary>
     private Vector2 CalcOverlapRange(float start1, float end1, float start2, float end2)
     {
         return new Vector2(Mathf.Max(start1, start2), Mathf.Min(end1, end2));
@@ -545,7 +565,7 @@
         return true;
     }
 
-    //将两个门间的过道占用数据存入RoomGrid, 该重载
+    //将两个门间的过道占用数据存入RoomGrid, 该重载加入拐角点
     private bool AddCorridorToGridRange(RoomDoorInfo door1, RoomDoorInfo door2, Vector2 cross)
     {
         var point1 = door1.OriginPosition;