private void InitAssets()
        {
            #region Setup Variables
            startAmount = Constants.ShipAmount;
            Constants.playerSpritePath = String.Format("{0}{1}{2}", Constants.playerBasePath, Constants.SelectedShip, Constants.imageExtension);
            Constants.enemySpritePath = String.Format("{0}{1}{2}", Constants.enemyBasePath, Constants.SelectedEnemy, Constants.imageExtension);

            Constants.MenuBackgroundPath = String.Format("{0}{1}{2}", Constants.BackgroundBasePath, Constants.SelectedMenuBackground, Constants.imageExtension);
            Constants.GameBackgroundPath = String.Format("{0}{1}{2}", Constants.BackgroundBasePath, Constants.SelectedGameBackground, Constants.imageExtension);
            #endregion

            #region Setup Screen
            gameCanvas = new Canvas();
            gameCanvas.Height = Constants.ScreenHeight;
            gameCanvas.Width = Constants.ScreenWidth;
            gameCanvas.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            gameCanvas.VerticalAlignment = System.Windows.VerticalAlignment.Top;
            this.Content = gameCanvas;
            #endregion

            #region Setup States
            Menu = new MenuState(this);
            Help = new HelpState(this);
            Story = new StoryState(this);
            ShipSelection = new ShipSelectionState(this);
            Play = new GameState(this, timeToPlay, Constants.ShipAmount);
            State.SetState(Menu);
            #endregion

            #region Setup Timers
            TimeTick = 1000 / Constants.fps;
            GameTick = new DispatcherTimer();
            GameTick.Interval = TimeSpan.FromMilliseconds(TimeTick);
            GameTick.Tick += GameLoop;

            PlayTime = new DispatcherTimer();
            PlayTime.Interval = TimeSpan.FromSeconds(1);
            PlayTime.Tick += PlayTime_Tick;

            #endregion
        }
 public static void SetState(State newState)
 {
     currentState = newState;
 }
 public void GameReset()
 {
     gameCanvas.Children.Clear();
     //Gabrage collector will clean this.
     Play = null;
     Menu = null;
     Help = null;
 }