Esempio n. 1
0
        //Gwen Low Level Functions
        public static void InitGwen()
        {
            //TODO: Make it easier to modify skin.
            if (Skin == null)
            {
                Skin = new TexturedBase(
                    GwenRenderer,
                    Globals.ContentManager.GetTexture(GameContentManager.TextureType.Gui, "defaultskin.png")
                    )
                {
                    DefaultFont = Graphics.UIFont
                };
            }

            MenuUi?.Dispose();

            GameUi?.Dispose();

            // Create a Canvas (it's root, on which all other GWEN controls are created)
            sMenuCanvas = new Canvas(Skin, "MainMenu")
            {
                Scale = 1f //(GameGraphics.Renderer.GetScreenWidth()/1920f);
            };

            sMenuCanvas.SetSize(
                (int)(Graphics.Renderer.GetScreenWidth() / sMenuCanvas.Scale),
                (int)(Graphics.Renderer.GetScreenHeight() / sMenuCanvas.Scale)
                );

            sMenuCanvas.ShouldDrawBackground = false;
            sMenuCanvas.BackgroundColor      = Color.FromArgb(255, 150, 170, 170);
            sMenuCanvas.KeyboardInputEnabled = true;

            // Create the game Canvas (it's root, on which all other GWEN controls are created)
            sGameCanvas = new Canvas(Skin, "InGame");

            //_gameCanvas.Scale = (GameGraphics.Renderer.GetScreenWidth() / 1920f);
            sGameCanvas.SetSize(
                (int)(Graphics.Renderer.GetScreenWidth() / sGameCanvas.Scale),
                (int)(Graphics.Renderer.GetScreenHeight() / sGameCanvas.Scale)
                );

            sGameCanvas.ShouldDrawBackground = false;
            sGameCanvas.BackgroundColor      = Color.FromArgb(255, 150, 170, 170);
            sGameCanvas.KeyboardInputEnabled = true;

            // Create GWEN input processor
            if (Globals.GameState == GameStates.Intro || Globals.GameState == GameStates.Menu)
            {
                GwenInput.Initialize(sMenuCanvas);
            }
            else
            {
                GwenInput.Initialize(sGameCanvas);
            }

            FocusElements         = new List <Framework.Gwen.Control.Base>();
            InputBlockingElements = new List <Framework.Gwen.Control.Base>();
            ErrorMsgHandler       = new ErrorHandler(sMenuCanvas, sGameCanvas);

            if (Globals.GameState == GameStates.Intro || Globals.GameState == GameStates.Menu)
            {
                MenuUi = new MenuGuiBase(sMenuCanvas);
                GameUi = null;
            }
            else
            {
                GameUi = new GameInterface(sGameCanvas);
                MenuUi = null;
            }

            Globals.OnLifecycleChangeState();

            GwenInitialized = true;
        }