public override void UpdateState(GameTime gameTime)
        {
            if (_loadDone)
            {
                if (_iDelayTime == _delayTime)
                {
                    Owner.GameState = temp;
                    GlobalVariables.GameCursor.IsIdle = true;
                }
                else
                    _iDelayTime++;
            }

            else
            {
                if (_completedSteps == _stepLengh)
                {
                    _loadDone = true;
                    return;
                }

                if (_iDelayTime == _delayTime)
                {
                    if (_prototypeIndex >= _objectManagerArray[_objectIndex]._nprototype)
                    {
                        _prototypeIndex = 0;
                        _objectIndex++;
                    }
                    if (_objectIndex >= _nObjectManager)
                    {
                        switch (_type.Name)
                        {
                            case "StateMenuManager":
                                {
                                    temp = new StateMenuManager();
                                    temp.InitState(_objectManagerArray, this.Owner);
                                    temp.EnterState();
                                    _completedSteps++;
                                    _delayTime /= 2;
                                    _iDelayTime = 0;
                                    break;
                                }

                            case "StateMainGame":
                                {
                                    temp = new StateMainGame();
                                    temp.InitState(_objectManagerArray, this.Owner);
                                    temp.EnterState();
                                    _completedSteps++;
                                    _delayTime /= 2;
                                    _iDelayTime = 0;
                                    break;
                                }
                        }
                        Owner.ResetElapsedTime();
                        _drawingRate = (float)_completedSteps / (float)_stepLengh;
                        _processBar.UpdateDrawRect(_drawingRate);
                        return;
                    }

                    _objectManagerArray[_objectIndex].InitOne(Owner.Content, _prototypeIndex);
                    _completedSteps++;
                    Owner.ResetElapsedTime();

                    _drawingRate = (float)_completedSteps / (float)_stepLengh;
                    _processBar.UpdateDrawRect(_drawingRate);

                    _prototypeIndex++;
                }
                else
                    _iDelayTime++;

            }
        }
        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            this.graphics.IsFullScreen = true;

            // Create a new SpriteBatch, which can be used to draw textures.
            spriteBatch = new SpriteBatch(GraphicsDevice);

            // TODO: use this.Content to load your game content here
            GlobalVariables.ScreenHeight = this.Window.ClientBounds.Height;
            GlobalVariables.ScreenWidth = this.Window.ClientBounds.Width;
            GlobalVariables.MouseObserver = new MouseObserver();
            //GlobalVariables.KeyboardObserver = new KeyboardObserver();
            GlobalVariables.Btm = new ButtonManger();
            GlobalVariables.Btm.InitPrototypes(Content, @"./Data/XML/buttonmanager.xml");
            GlobalVariables.Mnm = new MenuManager();
            GlobalVariables.Mnm.InitPrototypes(Content, @"./Data/XML/menumanager.xml");

            //_cursor.Init(Content);
            GlobalVariables.GameCursor = new Cursor();
            GlobalVariables.GameCursor.Init(Content);

            _gameState = new StateMainGame();
            _gameState.InitState(Content, this);
            _gameState.EnterState();
        }
        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            this.graphics.IsFullScreen = true;

            // Create a new SpriteBatch, which can be used to draw textures.
            spriteBatch = new SpriteBatch(GraphicsDevice);

            // TODO: use this.Content to load your game content here
            GlobalVariables.Sf = Content.Load<SpriteFont>("sf");

            GlobalVariables.ScreenHeight = this.Window.ClientBounds.Height;
            GlobalVariables.ScreenWidth = this.Window.ClientBounds.Width;

            //Khởi tạo 2 biến mouseState
            GlobalVariables.CurrentMouseState = new MouseState();
            GlobalVariables.PreviousMouseState = new MouseState();

            GlobalVariables.GameCursor = new Cursor();
            GlobalVariables.GameCursor.Init(Content);

            //_gameState = new StateMenu();
            //_gameState.InitState(Content, this);
            //_gameState.EnterState();

            int nObjectManager = 3;
            GameObjectManager[] objectManagerArray = new GameObjectManager[nObjectManager];
            objectManagerArray[0] = new BackgroundManager(@"./Data/XML/menubg.xml");
            objectManagerArray[1] = new GameFrameManager(@"./Data/XML/gameframe-statemenu.xml");
            objectManagerArray[2] = new ButtonManger(@"./Data/XML/buttonmanager-statemenu.xml");
            _gameState = new StateLoading();
            _gameState.InitState(null, this);
            ((StateLoading)_gameState).GetDataLoading(Content, @"./Data/XML/loadingtomenu.xml", objectManagerArray, typeof(StateMenuManager));
            _gameState.EnterState();

            //int nObjectManager = 12;
            //GameObjectManager[] objectManagerArray = new GameObjectManager[nObjectManager];

            //objectManagerArray[1] = new MapManager(@"Data\Map\map.xml");
            //objectManagerArray[0] = new PlayerCharacterManager(@"Data\character\character.xml");
            //objectManagerArray[2] = new MonsterManager(@"Data\monster\monster.xml");
            //objectManagerArray[3] = new ProcessBarManager(@"Data\XML\processbar-stateloading.xml");
            //objectManagerArray[4] = new PortralManager(@"Data\Portral\Portral.xml");
            //objectManagerArray[5] = new MapObstacleManager(@"Data\MapObstacle\MapObstacle.xml");
            //objectManagerArray[6] = new ProjectileManager(@"Data\Projectile\Projectile.xml");
            //objectManagerArray[7] = new SkillManager(@"Data\Skill\Skill.xml");
            //objectManagerArray[8] = new GameFrameManager(@"Data\XML\gameframe-statemaingame.xml");
            //objectManagerArray[9] = new ProcessBarManager(@"Data\XML\processbar-statemaingame.xml");
            //objectManagerArray[10] = new ButtonManger(@"Data\XML\buttonmanager-statemaingame.xml");
            //objectManagerArray[11] = new LabelManager(@"Data\XML\labelmanager-statemaingame.xml");

            //_gameState = new StateLoading();
            //_gameState.InitState(null, this);
            //((StateLoading)_gameState).GetDataLoading(Content, @"./Data/XML/loadingtomenu.xml", objectManagerArray, typeof(StateMainGame));
            //_gameState.EnterState();
        }