Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / room / RoomManager.cs
@小李xl 小李xl on 21 Nov 2022 1 KB 敌人跟随玩家样例
  1. using Godot;
  2.  
  3. /// <summary>
  4. /// 房间管理器
  5. /// </summary>
  6. public class RoomManager : Navigation2D
  7. {
  8. public Role Player { get; private set; }
  9. private Node2D ObjectRoot;
  10. private YSort SortRoot;
  11.  
  12. private Enemy _enemy;
  13.  
  14. public override void _EnterTree()
  15. {
  16. Input.MouseMode = Input.MouseModeEnum.Hidden;
  17.  
  18. SortRoot = GetNode<YSort>("SortRoot");
  19. ObjectRoot = GetNode<Node2D>("ObjectRoot");
  20.  
  21. //初始化地图
  22. var node = GetNode("MapRoot").GetChild(0).GetNode("Config");
  23. Color color = (Color)node.GetMeta("ClearColor");
  24. VisualServer.SetDefaultClearColor(color);
  25. //创建玩家
  26. Player = new Player();
  27. Player.Position = new Vector2(100, 100);
  28. Player.Name = "Player";
  29. Player.PutDown();
  30. _enemy = new Enemy();
  31. _enemy.Name = "Enemy";
  32. _enemy.PutDown(new Vector2(150, 150));
  33. }
  34.  
  35. public override void _Ready()
  36. {
  37. //播放bgm
  38. SoundManager.PlayMusic(ResourcePath.resource_sound_bgm_Intro_ogg, -17f);
  39. _enemy.PickUpWeapon(WeaponManager.GetGun("1001"));
  40.  
  41. WeaponManager.GetGun("1001").PutDown(new Vector2(80, 100));
  42. WeaponManager.GetGun("1001").PutDown(new Vector2(80, 80));
  43. WeaponManager.GetGun("1002").PutDown(new Vector2(80, 120));
  44. WeaponManager.GetGun("1003").PutDown(new Vector2(120, 80));
  45.  
  46. WeaponManager.GetGun("1003").PutDown(new Vector2(180, 80));
  47. WeaponManager.GetGun("1003").PutDown(new Vector2(180, 180));
  48. WeaponManager.GetGun("1002").PutDown(new Vector2(180, 120));
  49. WeaponManager.GetGun("1004").PutDown(new Vector2(220, 120));
  50. }
  51.  
  52. public override void _Process(float delta)
  53. {
  54.  
  55. }
  56.  
  57. /// <summary>
  58. /// 获取房间根节点
  59. /// </summary>
  60. /// <param name="useYSort">是否获取 YSort 节点</param>
  61. /// <returns></returns>
  62. public Node2D GetRoot(bool useYSort = false)
  63. {
  64. return useYSort ? SortRoot : ObjectRoot;
  65. }
  66. }