diff --git a/DungeonShooting_Godot/src/framework/map/DungeonTile.cs b/DungeonShooting_Godot/src/framework/map/DungeonTile.cs
index 830714d..fc5a06d 100644
--- a/DungeonShooting_Godot/src/framework/map/DungeonTile.cs
+++ b/DungeonShooting_Godot/src/framework/map/DungeonTile.cs
@@ -23,7 +23,7 @@
///
/// 连接房间的过道的地板层级
///
- public const int AisleFloorLayer = 3;
+ public const int AisleFloorMapLayer = 3;
///
/// 配置层级的自定义数据名称
@@ -242,7 +242,7 @@
break;
}
- FillRect(AisleFloorLayer, config.Floor, doorInfo.Cross + Vector2.One,
+ FillRect(AisleFloorMapLayer, config.Floor, doorInfo.Cross + Vector2.One,
new Vector2(GenerateDungeon.CorridorWidth - 2, GenerateDungeon.CorridorWidth - 2));
//墙壁, 0横向, 1纵向
@@ -378,7 +378,6 @@
{
for (int j = 0; j < size.Y; j++)
{
- //tileMap.SetCell((int)pos.X + i, (int)pos.Y + j, -1);
_tileRoot.SetCell(layer, new Vector2I((int)pos.X + i, (int)pos.Y + j), -1);
}
}
@@ -386,39 +385,59 @@
private void FullHorizontalAisleWall(AutoTileConfig config, Rect2 rect, int type)
{
- FillRect(AisleFloorLayer, config.Floor, rect.Position + new Vector2(0, 1), rect.Size - new Vector2(0, 2));
+ FillRect(AisleFloorMapLayer, config.Floor, rect.Position + new Vector2(0, 1), rect.Size - new Vector2(0, 2));
FillRect(MiddleMapLayer, config.T, rect.Position, new Vector2(rect.Size.X, 1));
FillRect(TopMapLayer, config.B, rect.Position + new Vector2(0, rect.Size.Y - 1), new Vector2(rect.Size.X, 1));
//左
ClearRect(TopMapLayer, rect.Position + new Vector2(-1, 1), new Vector2(1, rect.Size.Y - 2));
if (type == 1)
{
- FillRect(AisleFloorLayer, config.Floor, rect.Position + new Vector2(-1, 1), new Vector2(1, rect.Size.Y - 2));
+ FillRect(AisleFloorMapLayer, config.Floor, rect.Position + new Vector2(-1, 1), new Vector2(1, rect.Size.Y - 2));
+ }
+ else
+ {
+ FillRect(FloorMapLayer, config.Floor, rect.Position + new Vector2(-1, 1), new Vector2(1, rect.Size.Y - 2));
+ //生成门的导航区域
}
//右
ClearRect(TopMapLayer, rect.Position + new Vector2(rect.Size.X, 1), new Vector2(1, rect.Size.Y - 2));
if (type == 2)
{
- FillRect(AisleFloorLayer, config.Floor, rect.Position + new Vector2(rect.Size.X, 1), new Vector2(1, rect.Size.Y - 2));
+ FillRect(AisleFloorMapLayer, config.Floor, rect.Position + new Vector2(rect.Size.X, 1), new Vector2(1, rect.Size.Y - 2));
+ }
+ else
+ {
+ FillRect(FloorMapLayer, config.Floor, rect.Position + new Vector2(rect.Size.X, 1), new Vector2(1, rect.Size.Y - 2));
+ //生成门的导航区域
}
}
private void FullVerticalAisleWall(AutoTileConfig config, Rect2 rect, int type)
{
- FillRect(AisleFloorLayer, config.Floor, rect.Position + new Vector2(1, 0), rect.Size - new Vector2(2, 0));
+ FillRect(AisleFloorMapLayer, config.Floor, rect.Position + new Vector2(1, 0), rect.Size - new Vector2(2, 0));
FillRect(TopMapLayer, config.L, rect.Position, new Vector2(1, rect.Size.Y));
FillRect(TopMapLayer, config.R, rect.Position + new Vector2(rect.Size.X - 1, 0), new Vector2(1, rect.Size.Y));
//上
ClearRect(TopMapLayer, rect.Position + new Vector2(1, -1), new Vector2(rect.Size.X - 2, 1));
if (type == 1)
{
- FillRect(AisleFloorLayer, config.Floor, rect.Position + new Vector2(1, -1), new Vector2(rect.Size.X - 2, 1));
+ FillRect(AisleFloorMapLayer, config.Floor, rect.Position + new Vector2(1, -1), new Vector2(rect.Size.X - 2, 1));
+ }
+ else
+ {
+ FillRect(FloorMapLayer, config.Floor, rect.Position + new Vector2(1, -1), new Vector2(rect.Size.X - 2, 1));
+ //生成门的导航区域
}
//下
ClearRect(MiddleMapLayer, rect.Position + new Vector2(1, rect.Size.Y), new Vector2(rect.Size.X - 2, 1));
if (type == 2)
{
- FillRect(AisleFloorLayer, config.Floor, rect.Position + new Vector2(1, rect.Size.Y), new Vector2(rect.Size.X - 2, 1));
+ FillRect(AisleFloorMapLayer, config.Floor, rect.Position + new Vector2(1, rect.Size.Y), new Vector2(rect.Size.X - 2, 1));
+ }
+ else
+ {
+ FillRect(FloorMapLayer, config.Floor, rect.Position + new Vector2(1, rect.Size.Y), new Vector2(rect.Size.X - 2, 1));
+ //生成门的导航区域
}
}
diff --git a/DungeonShooting_Godot/src/game/room/RoomManager.cs b/DungeonShooting_Godot/src/game/room/RoomManager.cs
index 13b2818..60349be 100644
--- a/DungeonShooting_Godot/src/game/room/RoomManager.cs
+++ b/DungeonShooting_Godot/src/game/room/RoomManager.cs
@@ -34,8 +34,8 @@
private Font _font;
private GenerateDungeon _generateDungeon;
- //房间内所有导航网格数据
- private List _roomNavDataList = new List();
+ //房间内所有静态导航网格数据
+ private static List _roomStaticNavigationList = new List();
public override void _EnterTree()
{
@@ -64,10 +64,10 @@
_dungeonTile.AutoFillRoomTile(_autoTileConfig, _generateDungeon.StartRoom);
//生成寻路网格
- _dungeonTile.GenerateNavigationPolygon(DungeonTile.AisleFloorLayer);
+ _dungeonTile.GenerateNavigationPolygon(DungeonTile.AisleFloorMapLayer);
//挂载导航区域
_dungeonTile.MountNavigationPolygon(this);
- _roomNavDataList.AddRange(_dungeonTile.GetPolygonData());
+ _roomStaticNavigationList.AddRange(_dungeonTile.GetPolygonData());
//挂载所有导航区域
_generateDungeon.EachRoom(MountNavFromRoomInfo);
@@ -159,7 +159,7 @@
// DrawLine(new Vector2(-5000, 0), new Vector2(5000, 0), Colors.Green);
//绘制ai寻路区域
- Utils.DrawNavigationPolygon(this, _roomNavDataList.ToArray());
+ Utils.DrawNavigationPolygon(this, _roomStaticNavigationList.ToArray());
}
//绘制房间区域
//DrawRoomInfo(_generateDungeon.StartRoom);
@@ -182,7 +182,7 @@
polygon.AddOutline(polygonPointArray);
//存入汇总列表
- _roomNavDataList.Add(new NavigationPolygonData()
+ _roomStaticNavigationList.Add(new NavigationPolygonData()
{
Type = navigationPolygonData.Type,
Points = polygonPointArray.Select(point => new SerializeVector2(point)).ToList(),