static void Main()
        {
            var framerate = 60;                     // How many ticks a second will occur

            var keyListener = new Listener();       // Create the listener

            KeyGetter.Run(keyListener);             // Start the listener thread
            Console.CursorVisible = false;          // Hide the cursor
            Console.Title         = "BlockBreaker"; // Set the title of the console window

            // Setup filepath to highscores
            ResourceManager.HighscoresPath  = AppDomain.CurrentDomain.BaseDirectory;
            ResourceManager.HighscoresPath += "../../highscores.xml";

            // Create score handlers
            var scorewriter = new XMLScoreWriter();

            var renderer = new Renderer(new Register());
            var display  = new Display();

            // Create Portraits
            var mainMenu     = new MenuPortrait();
            var highscores   = new HighscoresPortrait();
            var enterName    = new EnterNamePortrait();
            var mainGame     = new GamePortrait();
            var endGame      = new EndGamePortrait(scorewriter);
            var instructions = new InstructionsPortrait();

            // Assign keypress events
            keyListener.KeyGot += mainMenu.OnKeyPress;
            keyListener.KeyGot += highscores.OnKeyPress;
            keyListener.KeyGot += enterName.OnKeyPress;
            keyListener.KeyGot += mainGame.OnKeyPress;
            keyListener.KeyGot += endGame.OnKeyPress;
            keyListener.KeyGot += instructions.OnKeyPress;

            // Set up manager
            var portraitManager = new Manager(renderer, display, (int)PageHandles.MainMenu, mainMenu);

            portraitManager.AddPortrait((int)PageHandles.Highscores, highscores);
            portraitManager.AddPortrait((int)PageHandles.GiveName, enterName);
            portraitManager.AddPortrait((int)PageHandles.MainGame, mainGame);
            portraitManager.AddPortrait((int)PageHandles.EndGame, endGame);
            portraitManager.AddPortrait((int)PageHandles.Instructions, instructions);

            while (true)
            {
                portraitManager.Tick();

                Thread.Sleep(1000 / framerate);
            }
        }
 void OnMouseExit()
 {
     if ( current == this )
         current = null;
 }
 void OnMouseEnter()
 {
     current = this;
 }