diff --git a/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs b/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs index dbbdacb..7055f90 100644 --- a/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs +++ b/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs @@ -320,6 +320,14 @@ protected virtual void DebugDraw() { } + + /// + /// 返回当物体 CollisionLayer 是否能与 layer 层碰撞 + /// + public bool CollisionWithLayer(uint layer) + { + return (CollisionLayer & layer) != 0; + } /// /// 拾起一个 node 节点, 也就是将其从场景树中移除 diff --git a/DungeonShooting_Godot/src/game/room/RoomManager.cs b/DungeonShooting_Godot/src/game/room/RoomManager.cs index 31a93fc..de2e545 100644 --- a/DungeonShooting_Godot/src/game/room/RoomManager.cs +++ b/DungeonShooting_Godot/src/game/room/RoomManager.cs @@ -99,7 +99,7 @@ { var inst = (ActivityObject)o; var count = Player.Affiliation.FindIncludeItemsCount( - activityObject => activityObject.CollisionLayer == PhysicsLayer.Enemy && activityObject != inst + activityObject => activityObject != inst && activityObject.CollisionWithLayer(PhysicsLayer.Enemy) ); GD.Print("有敌人死亡! 当前房间还剩: " + count + "个敌人"); if (count == 0)