diff --git a/DungeonShooting_Godot/src/framework/map/DungeonTile.cs b/DungeonShooting_Godot/src/framework/map/DungeonTile.cs index c8356a8..aafafa9 100644 --- a/DungeonShooting_Godot/src/framework/map/DungeonTile.cs +++ b/DungeonShooting_Godot/src/framework/map/DungeonTile.cs @@ -108,6 +108,8 @@ _tileRoot.AddChild(activityMark); activityMark.Visible = false; activityMark.GlobalPosition = roomInfo.GetWorldPosition() + pos; + activityMark.Visible = false; + activityMark.SetActive(false); } roomInfo.ActivityMarks.AddRange(activityMarks); diff --git a/DungeonShooting_Godot/src/framework/map/GenerateDungeon.cs b/DungeonShooting_Godot/src/framework/map/GenerateDungeon.cs index 1c3a61e..6e2720b 100644 --- a/DungeonShooting_Godot/src/framework/map/GenerateDungeon.cs +++ b/DungeonShooting_Godot/src/framework/map/GenerateDungeon.cs @@ -21,7 +21,7 @@ /// /// 生成的房间数量 /// - private int _maxCount = 3; + private int _maxCount = 15; //用于标记地图上的坐标是否被占用 private Grid _roomGrid { get; } = new Grid(); @@ -291,25 +291,25 @@ nextRoomDoor.ConnectRoom = room; nextRoomDoor.ConnectDoor = roomDoor; - // //先寻找直通门 - // if (Utils.RandomBoolean()) - // { - // //直行通道, 优先横轴 - // if (TryConnectHorizontalDoor(room, roomDoor, nextRoom, nextRoomDoor) - // || TryConnectVerticalDoor(room, roomDoor, nextRoom, nextRoomDoor)) - // { - // return true; - // } - // } - // else - // { - // //直行通道, 优先纵轴 - // if (TryConnectVerticalDoor(room, roomDoor, nextRoom, nextRoomDoor) - // || TryConnectHorizontalDoor(room, roomDoor, nextRoom, nextRoomDoor)) - // { - // return true; - // } - // } + //先寻找直通门 + if (Utils.RandomBoolean()) + { + //直行通道, 优先横轴 + if (TryConnectHorizontalDoor(room, roomDoor, nextRoom, nextRoomDoor) + || TryConnectVerticalDoor(room, roomDoor, nextRoom, nextRoomDoor)) + { + return true; + } + } + else + { + //直行通道, 优先纵轴 + if (TryConnectVerticalDoor(room, roomDoor, nextRoom, nextRoomDoor) + || TryConnectHorizontalDoor(room, roomDoor, nextRoom, nextRoomDoor)) + { + return true; + } + } //包含拐角的通道 return TryConnectCrossDoor(room, roomDoor, nextRoom, nextRoomDoor); diff --git a/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs b/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs index f42fc93..431a890 100644 --- a/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs +++ b/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs @@ -62,6 +62,10 @@ if (_isOver) { _overTimer += (float)delta; + if (_overTimer >= 1) + { + SetActive(false); + } } else { @@ -85,6 +89,7 @@ { _isOver = false; _overTimer = 0; + SetActive(true); if (DelayTime <= 0) { Doing(roomInfo); @@ -112,7 +117,6 @@ { var instance = ActivityObject.Create(GetItemId()); instance.PutDown(GlobalPosition, Layer); - Visible = false; } public override void _Draw() @@ -124,4 +128,14 @@ } } + /// + /// 设置当前节点是否是活动状态 + /// + public void SetActive(bool flag) + { + SetProcess(flag); + SetProcessInternal(flag); + SetPhysicsProcess(flag); + SetPhysicsProcessInternal(flag); + } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs b/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs index 10309cd..cc5a0fd 100644 --- a/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs +++ b/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs @@ -61,7 +61,6 @@ //创建敌人 var instance = ActivityObject.Create(GetItemId()); instance.PutDown(pos, Layer); - Visible = false; if (!string.IsNullOrWhiteSpace(Weapon1Id)) CreateWeapon(instance, pos, Weapon1Id, Weapon1Ammo); diff --git a/DungeonShooting_Godot/src/framework/map/mark/WeaponMark.cs b/DungeonShooting_Godot/src/framework/map/mark/WeaponMark.cs index 915b6c1..190ac94 100644 --- a/DungeonShooting_Godot/src/framework/map/mark/WeaponMark.cs +++ b/DungeonShooting_Godot/src/framework/map/mark/WeaponMark.cs @@ -40,7 +40,5 @@ instance.SetResidueAmmo(ResidueAmmo); } instance.PutDown(GlobalPosition, Layer); - - Visible = false; } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/role/Player.cs b/DungeonShooting_Godot/src/game/role/Player.cs index f768681..9863765 100644 --- a/DungeonShooting_Godot/src/game/role/Player.cs +++ b/DungeonShooting_Godot/src/game/role/Player.cs @@ -45,13 +45,13 @@ MaxShield = 30; Shield = 30; - // debug用 - Acceleration = 3000; - Friction = 3000; - MoveSpeed = 500; - CollisionLayer = 0; - CollisionMask = 0; - GameCamera.Main.Zoom = new Vector2(0.5f, 0.5f); + // // debug用 + // Acceleration = 3000; + // Friction = 3000; + // MoveSpeed = 500; + // CollisionLayer = 0; + // CollisionMask = 0; + // GameCamera.Main.Zoom = new Vector2(0.5f, 0.5f); } protected override void Process(float delta)