diff --git a/DungeonShooting_Godot/prefab/role/Enemy.tscn b/DungeonShooting_Godot/prefab/role/Enemy.tscn index 29c0d58..f4e9b41 100644 --- a/DungeonShooting_Godot/prefab/role/Enemy.tscn +++ b/DungeonShooting_Godot/prefab/role/Enemy.tscn @@ -17,6 +17,7 @@ [node name="Enemy" instance=ExtResource( 1 )] CollisionLayer = 16 +CollisionMask = 25 [node name="ShadowSprite" parent="." index="0"] material = SubResource( 1 ) @@ -24,10 +25,13 @@ [node name="AnimatedSprite" parent="." index="2"] material = SubResource( 2 ) +[node name="Collision" parent="." index="3"] +position = Vector2( 0, -8 ) + [node name="ViewRay" type="RayCast2D" parent="." index="6"] position = Vector2( 0, -8 ) -[node name="NavigationPoint" type="Node2D" parent="." index="8"] +[node name="NavigationPoint" type="Position2D" parent="." index="8"] position = Vector2( 0, -5 ) [node name="NavigationAgent2D" type="NavigationAgent2D" parent="NavigationPoint" index="0"] diff --git a/DungeonShooting_Godot/prefab/role/Player.tscn b/DungeonShooting_Godot/prefab/role/Player.tscn index 4d5c98f..7154560 100644 --- a/DungeonShooting_Godot/prefab/role/Player.tscn +++ b/DungeonShooting_Godot/prefab/role/Player.tscn @@ -17,10 +17,11 @@ [node name="Player" instance=ExtResource( 1 )] CollisionLayer = 8 +CollisionMask = 25 [node name="ShadowSprite" parent="." index="0"] material = SubResource( 1 ) [node name="AnimatedSprite" parent="." index="2"] material = SubResource( 2 ) -frame = 2 +frame = 1 diff --git a/DungeonShooting_Godot/src/game/role/Player.cs b/DungeonShooting_Godot/src/game/role/Player.cs index 0671568..19836f6 100644 --- a/DungeonShooting_Godot/src/game/role/Player.cs +++ b/DungeonShooting_Godot/src/game/role/Player.cs @@ -18,6 +18,9 @@ { AttackLayer = PhysicsLayer.Wall | PhysicsLayer.Props | PhysicsLayer.Enemy; Camp = CampEnum.Camp1; + + Holster.SlotList[2].Enable = true; + Holster.SlotList[3].Enable = true; } public override void _Ready() @@ -31,8 +34,6 @@ // MainCamera.Main.ResetSmoothing(); // remoteTransform.RemotePath = remoteTransform.GetPathTo(MainCamera.Main); - Holster.SlotList[2].Enable = true; - Holster.SlotList[3].Enable = true; RefreshGunTexture(); MaxHp = 50; diff --git a/DungeonShooting_Godot/src/game/role/Role.cs b/DungeonShooting_Godot/src/game/role/Role.cs index dfc1877..dc7063b 100644 --- a/DungeonShooting_Godot/src/game/role/Role.cs +++ b/DungeonShooting_Godot/src/game/role/Role.cs @@ -345,16 +345,19 @@ } /// - /// 拾起一个武器, 并且切换到这个武器 + /// 拾起一个武器, 并且切换到这个武器, 返回是否成功拾取 /// /// 武器对象 - public virtual void PickUpWeapon(Weapon weapon) + public virtual bool PickUpWeapon(Weapon weapon) { if (Holster.PickupWeapon(weapon) != -1) { //从可互动队列中移除 _interactiveItemList.Remove(weapon); + return true; } + + return false; } /// diff --git a/DungeonShooting_Godot/src/game/role/enemy/Enemy.cs b/DungeonShooting_Godot/src/game/role/enemy/Enemy.cs index 946a4f2..538935d 100644 --- a/DungeonShooting_Godot/src/game/role/enemy/Enemy.cs +++ b/DungeonShooting_Godot/src/game/role/enemy/Enemy.cs @@ -53,7 +53,7 @@ //------------------------------------------------------- - private Node2D _navigationPoint; + private Position2D _navigationPoint; private NavigationAgent2D _navigationAgent2D; private float _navigationUpdateTimer = 0; @@ -65,11 +65,14 @@ AttackLayer = PhysicsLayer.Wall | PhysicsLayer.Props | PhysicsLayer.Player; Camp = CampEnum.Camp2; - MoveSpeed = 20; + MoveSpeed = 30; + + Holster.SlotList[2].Enable = true; + Holster.SlotList[3].Enable = true; //视野射线 ViewRay = GetNode("ViewRay"); - _navigationPoint = GetNode("NavigationPoint"); + _navigationPoint = GetNode("NavigationPoint"); _navigationAgent2D = _navigationPoint.GetNode("NavigationAgent2D"); PathSign = new PathSign(this, PathSignLength, GameApplication.Instance.Room.Player); diff --git a/DungeonShooting_Godot/src/game/room/RoomManager.cs b/DungeonShooting_Godot/src/game/room/RoomManager.cs index 2d2ec83..06539e6 100644 --- a/DungeonShooting_Godot/src/game/room/RoomManager.cs +++ b/DungeonShooting_Godot/src/game/room/RoomManager.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Globalization; using System.Linq; using Godot; @@ -23,7 +22,6 @@ private Node2D _mapRoot; private NavigationPolygonInstance _navigationPolygon; - private Enemy _enemy; //可行走区域的tileId private List _wayIds = new List(new[] { 129 }); @@ -56,10 +54,7 @@ Player.Position = new Vector2(100, 100); Player.Name = "Player"; Player.PutDown(); - - _enemy = new Enemy(); - _enemy.Name = "Enemy"; - _enemy.PutDown(new Vector2(150, 150)); + } public override void _Ready() @@ -78,7 +73,18 @@ //播放bgm SoundManager.PlayMusic(ResourcePath.resource_sound_bgm_Intro_ogg, -17f); - _enemy.PickUpWeapon(WeaponManager.GetGun("1001")); + var enemy1 = new Enemy(); + enemy1.Name = "Enemy"; + enemy1.PutDown(new Vector2(150, 150)); + enemy1.PickUpWeapon(WeaponManager.GetGun("1003")); + enemy1.PickUpWeapon(WeaponManager.GetGun("1001")); + + var enemy2 = new Enemy(); + enemy2.Name = "Enemy2"; + enemy2.PutDown(new Vector2(190, 150)); + enemy2.PickUpWeapon(WeaponManager.GetGun("1002")); + enemy2.PickUpWeapon(WeaponManager.GetGun("1004")); + enemy2.PickUpWeapon(WeaponManager.GetGun("1003")); WeaponManager.GetGun("1001").PutDown(new Vector2(80, 100)); WeaponManager.GetGun("1001").PutDown(new Vector2(80, 80));