Exemplo n.º 1
0
		protected override void UpdateWorld()
		{
			#region game is going on
			if (gameStarted && !gameOver && !win) 
			{
				int roomX = (int)theLevel.currentRoom.X;
				int roomY = (int)theLevel.currentRoom.Y;

				#region removing while testing new pause screen
				//if (pauseScreen == null) { //we are creating the pause screen every update!
				//    float x = theLevel.currentOrigin.X + 50f;
				//    float y = theLevel.currentOrigin.Y + (9f/16f)*50f;
				//    pauseScreen = new XNACS1Rectangle(new Vector2(x, y), 100f, (9f / 16f)*100f);
				//    pauseScreen.Color = Color.Black;

				//    map = new Map(new Vector2(x, y));// betania added this 
				//    map.Visible = false;
				//    map.RemoveFromAutoDrawSet();// betania added this
				//}
				#endregion

				if (GamePad.ButtonStartClicked() && !exiting)
					paused = paused ? false : true; //toggle the pause button

				if (theLevel.paused)
					World.Paused = true;

				if (!theLevel.paused && lostLifeScreen != null) 
				{
					lostLifeScreen.RemoveFromAutoDrawSet();
					lostLifeScreen = null;
				}

				if (!theLevel.paused && !paused)
					World.Paused = false;

				if (!paused && !theLevel.paused ) 
				{
					//if (theLevel.paused)
					//	World.Paused = true;

					if (GamePad.ButtonBackClicked() || exiting) 
					{
						exiting = true;
						World.Paused = true;
						float x = theLevel.rooms[roomX, roomY].roomOrigin.X + 50f;
						float y = theLevel.rooms[roomX, roomY].roomOrigin.Y + 27f;
						if (areYouSure == null) 
						{
							areYouSure = new XNACS1Rectangle(new Vector2(x, y), 50, 27f);
							areYouSure.Color = Color.Black;
							areYouSure.Label = "Are you sure you want to quit? All progress will be lost.\n"
								+ "Press A to exit or B or cancel and return to the game";
							areYouSure.LabelColor = Color.White;
							areYouSure.AddToAutoDrawSet();
						}

						if (GamePad.ButtonAClicked()) 
						{
							Exit();
						}

						else if (GamePad.ButtonBClicked()) 
						{
							areYouSure.RemoveFromAutoDrawSet();
							areYouSure = null;
							World.Paused = false;
							exiting = false;

						}
					}
					else 
					{
						if (!loading) 
						{
							newLevel = false;
							newLevel = theLevel.updateLevel(GamePad.Buttons, GamePad.ThumbSticks, hero);
							if (newLevel) 
							{
								loading = true;
								currentLevel++;
							}
						}

						if (loading) 
						{

							if (currentLevel <= totalLevels) 
							{
								float x = theLevel.rooms[roomX, roomY].roomOrigin.X + 50f;
								float y = theLevel.rooms[roomX, roomY].roomOrigin.Y + 28.2f;
								if (levelScreen == null) 
								{
									levelScreen = new XNACS1Rectangle(new Vector2(x, y), 100f, 56f);
									levelScreen.Color = Color.Black;
									levelScreen.Label = "Level " + currentLevel;
									levelScreen.LabelColor = Color.White;
									levelScreen.AddToAutoDrawSet();
								}

								World.Paused = true;
								if (tick > 0) 
								{
									tick--;
								}
								else 
								{
									tick = 120;
									levelScreen.RemoveFromAutoDrawSet();
									levelScreen = null;
									theLevel.unloadLevel();
									// delete all rooms
									//map.removeRoom();
									switch (currentLevel) {
										case 1:
											path = @"level1.txt";
											break;
										case 2:
											path = @"level2.txt";
											break;
										case 3:
											path = @"level3.txt";
											break;
										case 4:
											path = @"level4.txt";
											break;
										default:
											win = true;
											break;
									}
									s = new StreamReader(path);
									XmlDocument xml = new XmlDocument();
									theLevel = new Level(ref s, xml);
									theLevel.loadInitialRoom(difficulty, hero);
									World.Paused = false;
									loading = false;
								}


							}

							else 
							{
									win = true;
							
							}
						}

						if (pauseScreen.IsInAutoDrawSet()) 
						{
							pauseScreen.RemoveFromAutoDrawSet();
							pauseScreen = null;
							 if (map.IsInAutoDrawSet())
							{
								map.RemoveFromAutoDrawSet();
								map.removeRoom();
								map.Visible = false;
							   // map = null;
							}
						}
					}
				}
				else if (paused && !theLevel.paused) 
				{

					pauseScreen.AddToAutoDrawSet();
					if (!map.Visible) {
						map.AddToAutoDrawSet();// betania added this 
						map.drawRoom(map.LowerLeft);// betania added this 

						map.displayMap(theLevel);// betania added

						map.Visible = true;
					}

				}

				else 
				{
					if (lostLifeScreen == null) 
					{
						lostLifeScreen = new XNACS1Rectangle(
							new Vector2(theLevel.currentOrigin.X + 50f, 
								theLevel.currentOrigin.Y + ((9f / 16f) * 100) / 2), 100f, 56f);

						lostLifeScreen.Label = "Princess Lives Left " + hero.NumTimesCaught;
						lostLifeScreen.Color = Color.Black;
						lostLifeScreen.LabelColor = Color.White;
						lostLifeScreen.AddToAutoDrawSet();
					}
					theLevel.updateLevel(GamePad.Buttons, GamePad.ThumbSticks, hero);
				}
			

				gameOver = hero.lives < 0;
				//String message = "Number of Lives: " + hero.lives + "   Level Number: " + currentLevel;
				//SetTopEchoColor(Color.White);
				//EchoToTopStatus(message);
				theLevel.rooms[(int)theLevel.currentRoom.X, (int)theLevel.currentRoom.Y].wand.UpdateWand(currentLevel);

				//if (w == null)
				//    w = new Wizard(Vector2.One);
				//w.Update(hero, theLevel.rooms[(int)theLevel.currentRoom.X, (int)theLevel.currentRoom.Y].wand);
			}
		#endregion
		
			#region game is won or lost	
			else if (gameOver || win) 
			{
				World.SetWorldCoordinate(new Vector2(0, 0), 100f);
				if (gameOver)
				{

					#region duplicate check
					//if (gameOverText == null) 
					//{
					//    cover = new XNACS1Rectangle(
					//        new Vector2(50f, ((9f / 16f) * 100f) / 2f), 100, (9f / 16f) * 100f);
					//    cover.Color = Color.Black;
					//}
					#endregion

					if (gameOverText == null) 
					{
						gameOverText = new XNACS1Rectangle(new Vector2(50, 40), 40, 10);
						gameOverText.Label = "GAME OVER \n A TO RESTART \n B TO EXIT";
						gameOverText.Color = Color.Black;
						gameOverText.LabelColor = Color.White;
					}
				}

				else 
				{
					if (winScreen == null) 
					{
						winScreen = new XNACS1Rectangle(
							new Vector2(50f, ((9f / 16f) * 100f) / 2f), 100, (9f / 16f) * 100f);
						winScreen.Color = Color.Black;
						winScreen.Label = "You've escaped the evil wizard's castle!\n You're free at last!";
						winScreen.LabelColor = Color.White;
					}
				}

				//unload everything
				if(theLevel != null)
					theLevel.unloadLevel();
				theLevel = null;

				if(hero != null)
					hero.RemoveFromAutoDrawSet();

				hero = null;

				if (GamePad.ButtonAClicked()) 
				{
					gameOverText.RemoveFromAutoDrawSet();
					gameOverText = null;
					cover.RemoveFromAutoDrawSet();
					cover = null;
					setupGame();
				}

				if (GamePad.ButtonBClicked())
				{
					Exit();
				}
			}
		#endregion

			#region game hasn't been started yet


			else if (!gameStarted) 
			{
				if (GamePad.ButtonAClicked()) 
				{
					if (selected.Center == easy.Center)
						difficulty = 1;
					else if (selected.Center == medium.Center)
						difficulty = 2;
					else
						difficulty = 3;
					hero = new Hero(new Vector2(0f, 0f), difficulty);
					theLevel.loadInitialRoom(difficulty, hero);
					//EchoToTopStatus(difficulty.ToString());
					gameStarted = true;
					selected.RemoveFromAutoDrawSet();
				}

				if (tick > 0)
					tick--;
				else
				{
					if (GamePad.ThumbSticks.Left.Y > 0) 
					{
						if (selected.Center != easy.Center)
							if (selected.Center != medium.Center)
								selected.Center = medium.Center;
							else
								selected.Center = easy.Center;
						tick = 8;
					}
					else if (GamePad.ThumbSticks.Left.Y < 0) 
					{
						if (selected.Center != hard.Center)
							if (selected.Center != medium.Center)
								selected.Center = medium.Center;
							else
								selected.Center = hard.Center;
						tick = 8;
					}
				}
			}
			#endregion
		}
        protected override void UpdateWorld()
        {
            if (gameStarted && !gameOver) {
            int roomX = (int)theLevel.currentRoom.X;
            int roomY = (int)theLevel.currentRoom.Y;
            if (pauseScreen == null) {
                float x = theLevel.rooms[roomX, roomY].roomOrigin.X + 50f;
                float y = theLevel.rooms[roomX, roomY].roomOrigin.Y + 27f;
                pauseScreen = new XNACS1Rectangle(new Vector2(x, y), 100f, 54f);
                pauseScreen.Color = Color.Black;
            }

            if (GamePad.ButtonStartClicked())
                paused = paused ? false : true;

            if (!paused) {
                if (GamePad.ButtonBackClicked())
                    Exit();

                bool newLevel = false;
                newLevel = theLevel.updateLevel(GamePad.Buttons, GamePad.ThumbSticks);

                if (newLevel) {
                    if (currentLevel < totalLevels) {
                        currentLevel++;
                        theLevel.unloadLevel();

                        switch (currentLevel) {
                            case 1:
                                path = @"level1.txt";
                                break;
                            case 2:
                                path = @"level2.txt";
                                break;
                            case 3:
                                path = @"level3.txt";
                                break;
                            case 4:
                                path = @"level4.txt";
                                break;
                            default:
                                break;
                        }
                        s = new StreamReader(path);
                        theLevel = new Level(ref s);
                        theLevel.loadInitialRoom(difficulty);
                    }

                    else {
                        gameOver = true;
                    }
                }

                if (pauseScreen.IsInAutoDrawSet()) {
                    pauseScreen.RemoveFromAutoDrawSet();
                    pauseScreen = null;
                }
            }
            else {
                pauseScreen.AddToAutoDrawSet();
                pauseScreen.Label = "PAUSED";
                pauseScreen.LabelColor = Color.White;
            }
            gameOver = theLevel.hero.lives < 0;
            String message = "Number of Lives: " + theLevel.hero.lives + "   Level Number: " + currentLevel;
            SetTopEchoColor(Color.White);
            EchoToTopStatus(message);
            }
            else if (gameOver) {
            World.SetWorldCoordinate(new Vector2(0, 0), 100f);
            cover = new XNACS1Rectangle(new Vector2(0, 0), 200, 200);
            cover.Color = Color.Black;
            gameOverText = new XNACS1Rectangle(new Vector2(50, 40), 40, 10);
            gameOverText.Label = "GAME OVER \n X TO RESTART";
            gameOverText.Color = Color.Black;
            gameOverText.LabelColor = Color.White;

            if (GamePad.ButtonXClicked()) {
                gameOverText.RemoveFromAutoDrawSet();
                gameOverText = null;
                cover.RemoveFromAutoDrawSet();
                cover = null;
                this.InitializeWorld();
            }
            }
            else if (!gameStarted) {
            if (GamePad.ButtonXClicked()) {
                if (selected.Center == easy.Center)
                    difficulty = 1;
                else if (selected.Center == medium.Center)
                    difficulty = 2;
                else
                    difficulty = 3;

                theLevel.loadInitialRoom(difficulty);
                EchoToTopStatus(difficulty.ToString());
                gameStarted = true;
            }

            if (ticks > 0)
                ticks--;
            else {
                if (GamePad.ThumbSticks.Right.Y > 0) {
                    if (selected.Center != easy.Center)
                        if (selected.Center != medium.Center)
                            selected.Center = medium.Center;
                        else
                            selected.Center = easy.Center;
                    ticks = 8;
                }
                else if (GamePad.ThumbSticks.Right.Y < 0) {
                    if (selected.Center != hard.Center)
                        if (selected.Center != medium.Center)
                            selected.Center = medium.Center;
                        else
                            selected.Center = hard.Center;
                    ticks = 8;
                }
            }
            }
        }
Exemplo n.º 3
0
        protected override void UpdateWorld()
        {
            #region game is going on
            if (gameStarted && !gameOver && !win)
            {
                int roomX = (int)theLevel.currentRoom.X;
                int roomY = (int)theLevel.currentRoom.Y;

                #region removing while testing new pause screen
                //if (pauseScreen == null) { //we are creating the pause screen every update!
                //    float x = theLevel.currentOrigin.X + 50f;
                //    float y = theLevel.currentOrigin.Y + (9f/16f)*50f;
                //    pauseScreen = new XNACS1Rectangle(new Vector2(x, y), 100f, (9f / 16f)*100f);
                //    pauseScreen.Color = Color.Black;

                //    map = new Map(new Vector2(x, y));// betania added this
                //    map.Visible = false;
                //    map.RemoveFromAutoDrawSet();// betania added this
                //}
                #endregion

                if (GamePad.ButtonStartClicked() && !exiting)
                {
                    paused = paused ? false : true;                     //toggle the pause button
                }
                if (theLevel.paused)
                {
                    World.Paused = true;
                }

                if (!theLevel.paused && lostLifeScreen != null)
                {
                    lostLifeScreen.RemoveFromAutoDrawSet();
                    lostLifeScreen = null;
                }

                if (!theLevel.paused && !paused)
                {
                    World.Paused = false;
                }

                if (!paused && !theLevel.paused)
                {
                    //if (theLevel.paused)
                    //	World.Paused = true;

                    if (GamePad.ButtonBackClicked() || exiting)
                    {
                        exiting      = true;
                        World.Paused = true;
                        float x = theLevel.rooms[roomX, roomY].roomOrigin.X + 50f;
                        float y = theLevel.rooms[roomX, roomY].roomOrigin.Y + 27f;
                        if (areYouSure == null)
                        {
                            areYouSure       = new XNACS1Rectangle(new Vector2(x, y), 50, 27f);
                            areYouSure.Color = Color.Black;
                            areYouSure.Label = "Are you sure you want to quit? All progress will be lost.\n"
                                               + "Press A to exit or B or cancel and return to the game";
                            areYouSure.LabelColor = Color.White;
                            areYouSure.AddToAutoDrawSet();
                        }

                        if (GamePad.ButtonAClicked())
                        {
                            Exit();
                        }

                        else if (GamePad.ButtonBClicked())
                        {
                            areYouSure.RemoveFromAutoDrawSet();
                            areYouSure   = null;
                            World.Paused = false;
                            exiting      = false;
                        }
                    }
                    else
                    {
                        if (!loading)
                        {
                            newLevel = false;
                            newLevel = theLevel.updateLevel(GamePad.Buttons, GamePad.ThumbSticks, hero);
                            if (newLevel)
                            {
                                loading = true;
                                currentLevel++;
                            }
                        }

                        if (loading)
                        {
                            if (currentLevel <= totalLevels)
                            {
                                float x = theLevel.rooms[roomX, roomY].roomOrigin.X + 50f;
                                float y = theLevel.rooms[roomX, roomY].roomOrigin.Y + 28.2f;
                                if (levelScreen == null)
                                {
                                    levelScreen            = new XNACS1Rectangle(new Vector2(x, y), 100f, 56f);
                                    levelScreen.Color      = Color.Black;
                                    levelScreen.Label      = "Level " + currentLevel;
                                    levelScreen.LabelColor = Color.White;
                                    levelScreen.AddToAutoDrawSet();
                                }

                                World.Paused = true;
                                if (tick > 0)
                                {
                                    tick--;
                                }
                                else
                                {
                                    tick = 120;
                                    levelScreen.RemoveFromAutoDrawSet();
                                    levelScreen = null;
                                    theLevel.unloadLevel();
                                    // delete all rooms
                                    //map.removeRoom();
                                    switch (currentLevel)
                                    {
                                    case 1:
                                        path = @"level1.txt";
                                        break;

                                    case 2:
                                        path = @"level2.txt";
                                        break;

                                    case 3:
                                        path = @"level3.txt";
                                        break;

                                    case 4:
                                        path = @"level4.txt";
                                        break;

                                    default:
                                        win = true;
                                        break;
                                    }
                                    s = new StreamReader(path);
                                    XmlDocument xml = new XmlDocument();
                                    theLevel = new Level(ref s, xml);
                                    theLevel.loadInitialRoom(difficulty, hero);
                                    World.Paused = false;
                                    loading      = false;
                                }
                            }

                            else
                            {
                                win = true;
                            }
                        }

                        if (pauseScreen.IsInAutoDrawSet())
                        {
                            pauseScreen.RemoveFromAutoDrawSet();
                            pauseScreen = null;
                            if (map.IsInAutoDrawSet())
                            {
                                map.RemoveFromAutoDrawSet();
                                map.removeRoom();
                                map.Visible = false;
                                // map = null;
                            }
                        }
                    }
                }
                else if (paused && !theLevel.paused)
                {
                    pauseScreen.AddToAutoDrawSet();
                    if (!map.Visible)
                    {
                        map.AddToAutoDrawSet();                        // betania added this
                        map.drawRoom(map.LowerLeft);                   // betania added this

                        map.displayMap(theLevel);                      // betania added

                        map.Visible = true;
                    }
                }

                else
                {
                    if (lostLifeScreen == null)
                    {
                        lostLifeScreen = new XNACS1Rectangle(
                            new Vector2(theLevel.currentOrigin.X + 50f,
                                        theLevel.currentOrigin.Y + ((9f / 16f) * 100) / 2), 100f, 56f);

                        lostLifeScreen.Label      = "Princess Lives Left " + hero.NumTimesCaught;
                        lostLifeScreen.Color      = Color.Black;
                        lostLifeScreen.LabelColor = Color.White;
                        lostLifeScreen.AddToAutoDrawSet();
                    }
                    theLevel.updateLevel(GamePad.Buttons, GamePad.ThumbSticks, hero);
                }


                gameOver = hero.lives < 0;
                //String message = "Number of Lives: " + hero.lives + "   Level Number: " + currentLevel;
                //SetTopEchoColor(Color.White);
                //EchoToTopStatus(message);
                theLevel.rooms[(int)theLevel.currentRoom.X, (int)theLevel.currentRoom.Y].wand.UpdateWand(currentLevel);

                //if (w == null)
                //    w = new Wizard(Vector2.One);
                //w.Update(hero, theLevel.rooms[(int)theLevel.currentRoom.X, (int)theLevel.currentRoom.Y].wand);
            }
            #endregion

            #region game is won or lost
            else if (gameOver || win)
            {
                World.SetWorldCoordinate(new Vector2(0, 0), 100f);
                if (gameOver)
                {
                    #region duplicate check
                    //if (gameOverText == null)
                    //{
                    //    cover = new XNACS1Rectangle(
                    //        new Vector2(50f, ((9f / 16f) * 100f) / 2f), 100, (9f / 16f) * 100f);
                    //    cover.Color = Color.Black;
                    //}
                    #endregion

                    if (gameOverText == null)
                    {
                        gameOverText            = new XNACS1Rectangle(new Vector2(50, 40), 40, 10);
                        gameOverText.Label      = "GAME OVER \n A TO RESTART \n B TO EXIT";
                        gameOverText.Color      = Color.Black;
                        gameOverText.LabelColor = Color.White;
                    }
                }

                else
                {
                    if (winScreen == null)
                    {
                        winScreen = new XNACS1Rectangle(
                            new Vector2(50f, ((9f / 16f) * 100f) / 2f), 100, (9f / 16f) * 100f);
                        winScreen.Color      = Color.Black;
                        winScreen.Label      = "You've escaped the evil wizard's castle!\n You're free at last!";
                        winScreen.LabelColor = Color.White;
                    }
                }

                //unload everything
                if (theLevel != null)
                {
                    theLevel.unloadLevel();
                }
                theLevel = null;

                if (hero != null)
                {
                    hero.RemoveFromAutoDrawSet();
                }

                hero = null;

                if (GamePad.ButtonAClicked())
                {
                    gameOverText.RemoveFromAutoDrawSet();
                    gameOverText = null;
                    cover.RemoveFromAutoDrawSet();
                    cover = null;
                    setupGame();
                }

                if (GamePad.ButtonBClicked())
                {
                    Exit();
                }
            }
            #endregion

            #region game hasn't been started yet


            else if (!gameStarted)
            {
                if (GamePad.ButtonAClicked())
                {
                    if (selected.Center == easy.Center)
                    {
                        difficulty = 1;
                    }
                    else if (selected.Center == medium.Center)
                    {
                        difficulty = 2;
                    }
                    else
                    {
                        difficulty = 3;
                    }
                    hero = new Hero(new Vector2(0f, 0f), difficulty);
                    theLevel.loadInitialRoom(difficulty, hero);
                    //EchoToTopStatus(difficulty.ToString());
                    gameStarted = true;
                    selected.RemoveFromAutoDrawSet();
                }

                if (tick > 0)
                {
                    tick--;
                }
                else
                {
                    if (GamePad.ThumbSticks.Left.Y > 0)
                    {
                        if (selected.Center != easy.Center)
                        {
                            if (selected.Center != medium.Center)
                            {
                                selected.Center = medium.Center;
                            }
                            else
                            {
                                selected.Center = easy.Center;
                            }
                        }
                        tick = 8;
                    }
                    else if (GamePad.ThumbSticks.Left.Y < 0)
                    {
                        if (selected.Center != hard.Center)
                        {
                            if (selected.Center != medium.Center)
                            {
                                selected.Center = medium.Center;
                            }
                            else
                            {
                                selected.Center = hard.Center;
                            }
                        }
                        tick = 8;
                    }
                }
            }
            #endregion
        }
        protected override void UpdateWorld()
        {
            if (gameStarted && !gameOver)
            {
                int roomX = (int)theLevel.currentRoom.X;
                int roomY = (int)theLevel.currentRoom.Y;
                if (pauseScreen == null)
                {
                    float x = theLevel.rooms[roomX, roomY].roomOrigin.X + 50f;
                    float y = theLevel.rooms[roomX, roomY].roomOrigin.Y + 27f;
                    pauseScreen       = new XNACS1Rectangle(new Vector2(x, y), 100f, 54f);
                    pauseScreen.Color = Color.Black;
                }

                if (GamePad.ButtonStartClicked())
                {
                    paused = paused ? false : true;
                }

                if (!paused)
                {
                    if (GamePad.ButtonBackClicked())
                    {
                        Exit();
                    }

                    bool newLevel = false;
                    newLevel = theLevel.updateLevel(GamePad.Buttons, GamePad.ThumbSticks);

                    if (newLevel)
                    {
                        if (currentLevel < totalLevels)
                        {
                            currentLevel++;
                            theLevel.unloadLevel();

                            switch (currentLevel)
                            {
                            case 1:
                                path = @"level1.txt";
                                break;

                            case 2:
                                path = @"level2.txt";
                                break;

                            case 3:
                                path = @"level3.txt";
                                break;

                            case 4:
                                path = @"level4.txt";
                                break;

                            default:
                                break;
                            }
                            s        = new StreamReader(path);
                            theLevel = new Level(ref s);
                            theLevel.loadInitialRoom(difficulty);
                        }

                        else
                        {
                            gameOver = true;
                        }
                    }

                    if (pauseScreen.IsInAutoDrawSet())
                    {
                        pauseScreen.RemoveFromAutoDrawSet();
                        pauseScreen = null;
                    }
                }
                else
                {
                    pauseScreen.AddToAutoDrawSet();
                    pauseScreen.Label      = "PAUSED";
                    pauseScreen.LabelColor = Color.White;
                }
                gameOver = theLevel.hero.lives < 0;
                String message = "Number of Lives: " + theLevel.hero.lives + "   Level Number: " + currentLevel;
                SetTopEchoColor(Color.White);
                EchoToTopStatus(message);
            }
            else if (gameOver)
            {
                World.SetWorldCoordinate(new Vector2(0, 0), 100f);
                cover                   = new XNACS1Rectangle(new Vector2(0, 0), 200, 200);
                cover.Color             = Color.Black;
                gameOverText            = new XNACS1Rectangle(new Vector2(50, 40), 40, 10);
                gameOverText.Label      = "GAME OVER \n X TO RESTART";
                gameOverText.Color      = Color.Black;
                gameOverText.LabelColor = Color.White;

                if (GamePad.ButtonXClicked())
                {
                    gameOverText.RemoveFromAutoDrawSet();
                    gameOverText = null;
                    cover.RemoveFromAutoDrawSet();
                    cover = null;
                    this.InitializeWorld();
                }
            }
            else if (!gameStarted)
            {
                if (GamePad.ButtonXClicked())
                {
                    if (selected.Center == easy.Center)
                    {
                        difficulty = 1;
                    }
                    else if (selected.Center == medium.Center)
                    {
                        difficulty = 2;
                    }
                    else
                    {
                        difficulty = 3;
                    }

                    theLevel.loadInitialRoom(difficulty);
                    EchoToTopStatus(difficulty.ToString());
                    gameStarted = true;
                }

                if (ticks > 0)
                {
                    ticks--;
                }
                else
                {
                    if (GamePad.ThumbSticks.Right.Y > 0)
                    {
                        if (selected.Center != easy.Center)
                        {
                            if (selected.Center != medium.Center)
                            {
                                selected.Center = medium.Center;
                            }
                            else
                            {
                                selected.Center = easy.Center;
                            }
                        }
                        ticks = 8;
                    }
                    else if (GamePad.ThumbSticks.Right.Y < 0)
                    {
                        if (selected.Center != hard.Center)
                        {
                            if (selected.Center != medium.Center)
                            {
                                selected.Center = medium.Center;
                            }
                            else
                            {
                                selected.Center = hard.Center;
                            }
                        }
                        ticks = 8;
                    }
                }
            }
        }