private static void Create() { OnGuiContextCreating(EventArgs.Empty); //Create the global GwenRenderer and Canvas _renderer = new Gwen.Renderer.SFML(WindowContext.Window); WindowContext.Window.KeyPressed += KeyPressed; WindowContext.Window.KeyReleased += KeyReleased; WindowContext.Window.MouseButtonPressed += MouseButtonPressed; WindowContext.Window.MouseButtonReleased += MouseButtonReleased; WindowContext.Window.MouseWheelMoved += MouseWheelMoved; WindowContext.Window.MouseMoved += MouseMoved; WindowContext.Window.TextEntered += TextEntered; Gwen.Font font = new Gwen.Font(_renderer, _gameConfiguration.SkinFont, 12); _renderer.LoadFont(font); _skin = new Gwen.Skin.TexturedBase(_renderer, _gameConfiguration.Skin); _skin.SetDefaultFont(font.FaceName); font.Dispose(); Canvas canvas = new Canvas(_skin); canvas.SetBounds(0, 0, _virtualResolution.Width, _virtualResolution.Height); canvas.ShouldDrawBackground = false; canvas.KeyboardInputEnabled = true; Canvas = canvas; _input = new Gwen.Input.SFML(); _input.Initialize(canvas, WindowContext.Window); OnGuiContextCreated(EventArgs.Empty); }
/// <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); }
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(); } }
private static void Initialize() { #region setup debug TextWriterTraceListener debugger = new TextWriterTraceListener(Console.Out); Debug.Listeners.Add(debugger); #endregion Debug.WriteLine("Initializing Game"); #region window setup window = new RenderWindow(new VideoMode((uint)screenSize.X, (uint)screenSize.Y, 32), "BPN", Styles.Close); window.SetFramerateLimit(30); window.KeyReleased += new EventHandler<KeyEventArgs>(window_KeyReleased); window.Closed += new EventHandler(window_Closed); window.MouseButtonReleased += new EventHandler<MouseButtonEventArgs>(window_MouseButtonReleased); window.MouseMoved += new EventHandler<MouseMoveEventArgs>(window_MouseMoved); window.MouseButtonPressed += new EventHandler<MouseButtonEventArgs>(window_MouseButtonPressed); window.MouseWheelMoved += new EventHandler<MouseWheelEventArgs>(window_MouseWheelMoved); window.EnableVerticalSync(true); #endregion #region Gui Setup guiRenderer = new Gwen.Renderer.SFML(window); guiRenderer.Initialize(); skin = new TexturedBase(guiRenderer, @"Data/DefaultSkin.png"); guiFont = new Gwen.Font("Data/OpenSans.ttf", 10); guiFontLarge = new Gwen.Font("Data/OpenSans.ttf", 14); guiRenderer.LoadFont(guiFont); guiRenderer.LoadFont(guiFontLarge); skin.SetDefaultFont(guiFont.FaceName); _canvas = new Canvas(skin); _canvas.SetSize(screenSize.X, screenSize.Y); _canvas.ShouldDrawBackground = true; _canvas.BackgroundColor = System.Drawing.Color.FromArgb(255, 150, 170, 170); _canvas.KeyboardInputEnabled = true; input = new Gwen.Input.SFML(); input.Initialize(_canvas); #endregion #region Side Buttons aboutPageButton = new Button(_canvas); aboutPageButton.Text = "About"; aboutPageButton.SetPos(4, 2*screenSize.Y/3-8); aboutPageButton.OnDown += new Gwen.Controls.Base.ControlCallback(aboutPageButton_OnDown); bookPageButton = new Button(_canvas); bookPageButton.Text = "Books"; bookPageButton.SetPos(4, 32); bookPageButton.OnDown += new Gwen.Controls.Base.ControlCallback(bookPageButton_OnDown); activePageButton = bookPageButton; #endregion int leftBound = 80; smallPageBounds = new System.Drawing.Rectangle(leftBound,leftBound,screenSize.X-leftBound*2,screenSize.Y -leftBound*2); #region Name Generator Initialization BookNameGenerator.Initialize(); PersonNameGenerator.Initialize(); //Have a few books ready for review at beginning of the game for (int i = 0; i < 8; i++) { Book b = new Book(); } #endregion GameManager.Initialize(); guiRenderer.Initialize(); Notifications.Initialize(); Book.Initialize(); Debug.WriteLine("Initialization Complete"); }