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(); } }
/// <summary> /// Duplicates font data (except renderer data which must be reinitialized). /// </summary> /// <returns></returns> public Font Copy() { Font f = new Font(m_Renderer, FaceName); f.Size = Size; f.RealSize = RealSize; f.RendererData = null; // must be reinitialized //f.Bold = Bold; //f.DropShadow = DropShadow; return f; }
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"); }