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));