Ejemplo n.º 1
0
        /// <summary>
        /// Contains the shared constructor code
        /// </summary>
        /// <param name="target"></param>
        private Gui(RenderTarget target)
        {
            _renderer = new Gwen.Renderer.SFML(target);

            skin = new TexturedBase(_renderer, "DefaultSkin.png");

            // load font. TODO: remove hardcoding
            using (var font = new Gwen.Font(_renderer, "OpenSans.ttf", 14))
            {
                if (_renderer.LoadFont(font))
                    _renderer.FreeFont(font);
                else
                {
                    font.FaceName = "Arial Unicode MS";
                    if (_renderer.LoadFont(font))
                        _renderer.FreeFont(font);
                    else
                    {
                        font.FaceName = "Arial";
                        _renderer.LoadFont(font);
                    }
                }

                skin.SetDefaultFont(font.FaceName, 14);
            }

            GuiCanvas = new Canvas(skin);
            GuiCanvas.SetSize((int)target.Size.X, (int)target.Size.Y);
            GuiCanvas.ShouldDrawBackground = false;
            GuiCanvas.BackgroundColor = System.Drawing.Color.Black;
            GuiCanvas.KeyboardInputEnabled = true;

            _input = new Gwen.Input.SFML();
            _input.Initialize(GuiCanvas, target);
        }
Ejemplo n.º 2
0
        public HUD(RenderWindow window, bool developerConsole)
        {
            window.KeyReleased += window_KeyReleased;
            window.MouseButtonPressed += window_MouseButtonPressed;
            window.MouseButtonReleased += window_MouseButtonReleased;
            window.MouseWheelMoved += window_MouseWheelMoved;
            window.MouseMoved += window_MouseMoved;
            window.TextEntered += window_TextEntered;            

            gwenRenderer = new Gwen.Renderer.SFML(window);
            Gwen.Skin.TexturedBase skin = new Gwen.Skin.TexturedBase(gwenRenderer, "./assets/DefaultSkin.png");
            defaultFont = new Gwen.Font(gwenRenderer) { Size = 10, FaceName = "./assets/OpenSanss.ttf" };

            if (gwenRenderer.LoadFont(defaultFont))
            {
                gwenRenderer.FreeFont(defaultFont);
            }
            else // try another
            {
                defaultFont.FaceName = "Arial";
                if (gwenRenderer.LoadFont(defaultFont))
                {
                    gwenRenderer.FreeFont(defaultFont);
                }
                else // try default
                {
                    defaultFont.FaceName = "./assets/OpenSans.ttf";
                }
            }

            skin.SetDefaultFont(defaultFont.FaceName);
            defaultFont.Dispose(); // skin has its own

            _canvas = new Gwen.Control.Canvas(skin);
            _canvas.SetSize((int)window.Size.X, (int)window.Size.Y);
            _canvas.ShouldDrawBackground = false;
            _canvas.KeyboardInputEnabled = true; 

            _input = new Gwen.Input.SFML();
            _input.Initialize(_canvas, window);

            tabControl = new Gwen.Control.TabControl(_canvas);
            int tabcontrolheight = 150;
            tabControl.SetBounds(0, window.Size.Y - tabcontrolheight, window.Size.X, tabcontrolheight);
            //Fixes the cursor flickering
            //TODO: Is this cross platform?
            System.Windows.Forms.Cursor.Hide();
            Inventory.Init();
            if (developerConsole)
            {
                HUD.Console.Init();
            }
        }