Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / room / RoomManager.cs
@小李xl 小李xl on 1 Nov 2022 2 KB 降低玩家的像素抖动
  1. using System;
  2. using Godot;
  3.  
  4. /// <summary>
  5. /// 房间管理器
  6. /// </summary>
  7. public class RoomManager : Node2D
  8. {
  9. /// <summary>
  10. /// 鼠标指针
  11. /// </summary>
  12. [Export] public PackedScene MouseCursor;
  13.  
  14. public static RoomManager Current { get; private set; }
  15.  
  16. public CanvasLayer UI;
  17. public Cursor Cursor { get; private set; }
  18. public Player Player { get; private set; }
  19. public Node2D ObjectRoot { get; private set; }
  20. public YSort SortRoot { get; private set; }
  21. public Viewport Viewport { get; private set; }
  22. public ViewportContainer ViewportContainer { get; private set; }
  23.  
  24. public override void _EnterTree()
  25. {
  26. Current = this;
  27. Input.MouseMode = Input.MouseModeEnum.Hidden;
  28.  
  29. UI = GetNode<CanvasLayer>("UI");
  30.  
  31. // 初始化鼠标
  32. Cursor = MouseCursor.Instance<Cursor>();
  33. AddChild(Cursor);
  34.  
  35. SortRoot = GetNode<YSort>("ItemRoot");
  36. Viewport = GetParentOrNull<Viewport>();
  37. if (Viewport != null)
  38. {
  39. ViewportContainer = Viewport.GetParentOrNull<ViewportContainer>();
  40. }
  41. ObjectRoot = GetNode<Node2D>("ObjectRoot");
  42.  
  43. //初始化地图
  44. var node = GetNode("MapRoot").GetChild(0).GetNode("Config");
  45. Color color = (Color)node.GetMeta("ClearColor");
  46. VisualServer.SetDefaultClearColor(color);
  47. //创建玩家
  48. Player = new Player();
  49. Player.Position = new Vector2(100, 100);
  50. Player.Name = "Player";
  51. //SortRoot.AddChild(player);
  52. Player.PutDown();
  53. }
  54.  
  55. public override void _Ready()
  56. {
  57. //播放bgm
  58. SoundManager.PlayeMusic("intro.ogg", this, -17f);
  59. WeaponManager.GetGun("1001").PutDown(new Vector2(100, 80));
  60. WeaponManager.GetGun("1001").PutDown(new Vector2(80, 100));
  61. WeaponManager.GetGun("1001").PutDown(new Vector2(80, 80));
  62. WeaponManager.GetGun("1002").PutDown(new Vector2(80, 120));
  63. WeaponManager.GetGun("1003").PutDown(new Vector2(120, 80));
  64.  
  65. WeaponManager.GetGun("1003").PutDown(new Vector2(180, 80));
  66. WeaponManager.GetGun("1003").PutDown(new Vector2(180, 180));
  67. WeaponManager.GetGun("1002").PutDown(new Vector2(180, 120));
  68.  
  69. }
  70.  
  71. public override void _Process(float delta)
  72. {
  73. }
  74. }