Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / room / RoomManager.cs
@小李xl 小李xl on 29 Oct 2022 1 KB 小修改
using System;
using Godot;

/// <summary>
/// 房间管理器
/// </summary>
public class RoomManager : Node2D
{
    /// <summary>
    /// 鼠标指针
    /// </summary>
    [Export] public PackedScene MouseCursor;

    public static RoomManager Current { get; private set; }

    public CanvasLayer UI;
    public Cursor Cursor { get; private set; }
    public Player Player { get; set; }
    public Node2D ObjectRoot { get; private set; }
    public YSort SortRoot { get; private set; }

    public override void _EnterTree()
    {
        Current = this;
        //Input.MouseMode = Input.MouseModeEnum.Hidden;

        UI = GetNode<CanvasLayer>("UI");

        // 初始化鼠标
        Cursor = MouseCursor.Instance<Cursor>();
        AddChild(Cursor);

        SortRoot = GetNode<YSort>("ItemRoot");
        ObjectRoot = GetNode<Node2D>("ObjectRoot");

        //初始化地图
        var node = GetNode("MapRoot").GetChild(0).GetNode("Config");
        Color color = (Color)node.GetMeta("ClearColor");
        VisualServer.SetDefaultClearColor(color);
        
        //创建玩家
        var player = new Player();
        player.Position = new Vector2(100, 100);
        player.Name = "Player";
        //SortRoot.AddChild(player);
        player.PutDown();
    }

    public override void _Ready()
    {
        //播放bgm
        SoundManager.PlayeMusic("intro.ogg", this, -17f);
        var gun1 = WeaponManager.GetGun("1001");
        gun1.PutDown(new Vector2(80, 80));
        var gun2 = WeaponManager.GetGun("1002");
        gun2.PutDown(new Vector2(80, 120));
        var gun3 = WeaponManager.GetGun("1003");
        gun3.PutDown(new Vector2(120, 80));
        
        var gun4 = WeaponManager.GetGun("1003");
        gun4.PutDown(new Vector2(180, 80));
        var gun5 = WeaponManager.GetGun("1003");
        gun5.PutDown(new Vector2(180, 180));
        var gun6 = WeaponManager.GetGun("1002");
        gun6.PutDown(new Vector2(180, 120));
    }

    public override void _Process(float delta)
    {
        
    }
}