public Game1() { //NOTE: Init graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; // Frame rate is 30 fps by default for Windows Phone. TargetElapsedTime = TimeSpan.FromTicks(333333); // Extend battery life under lock. this.Deactivated += Game1_Deactivated; InactiveSleepTime = TimeSpan.FromSeconds(1); graphics.SupportedOrientations = DisplayOrientation.LandscapeLeft; graphics.IsFullScreen = true; graphics.PreferredBackBufferHeight = 480; graphics.PreferredBackBufferWidth = 800; Consts.PhoneWidth = graphics.PreferredBackBufferWidth; Consts.PhoneHeight = graphics.PreferredBackBufferHeight; firstEntry = true; gameState = GameState.InMainMenu; //NOTE: MENU mainButtons = new List <MenuButton>(); mainButtons.Add(new MenuButton("Main_Start", Consts.P_StartButton, (Consts.PhoneWidth / 2) + 20, (Consts.PhoneHeight / 2) - 220)); mainButtons.Add(new MenuButton("Main_Help", Consts.P_HelpButton, (Consts.PhoneWidth / 2) + 20, (Consts.PhoneHeight / 2) - 220 + 100)); mainButtons.Add(new MenuButton("Main_About", Consts.P_AboutButton, (Consts.PhoneWidth / 2) + 20, (Consts.PhoneHeight / 2) - 220 + 200)); mainButtons.Add(new MenuButton("Main_Vibrate", Consts.P_VibrateButton, (Consts.PhoneWidth) - 100, (Consts.PhoneHeight) - 100)); mainMenu = new Menu(mainButtons); pauseButtons = new List <MenuButton>(); pauseButtons.Add(new MenuButton("Pause_Resume", Consts.P_ResumeButton, (Consts.PhoneWidth / 2) - 166, (Consts.PhoneHeight / 2) - 200)); pauseMenu = new Menu(pauseButtons); tutorialButtons = new List <MenuButton>(); tutorialButtons.Add(new MenuButton("Tutorial", Consts.P_Tutorial, 0, 0)); tutorialMenu = new Menu(tutorialButtons); aboutButtons = new List <MenuButton>(); aboutButtons.Add(new MenuButton("About_Rate", Consts.P_RateButton, (Consts.PhoneWidth / 2) - 166, (Consts.PhoneHeight / 2) - 50)); aboutMenu = new Menu(aboutButtons); //NOTE: GAMING player = new Player("Player1", 4, 100, 340, Consts.P_Player, 1); backBackground = new PlayerBackground(Consts.P_Backgrond, 1); foreBackground = new PlayerBackground(Consts.P_ForeBackground, 2); walkPlace = new PlayerBackground(Consts.P_Walkplace, 4); string level = LevelHelper.SelectLevel(); barriers = new Barriers(level, 4); moneys = new Moneys(level, 4); modifiers = new Modifiers(level, 4); backgroundList = new List <PlayerBackground>(); backgroundList.Add(backBackground); backgroundList.Add(foreBackground); backgroundList.Add(walkPlace); collosion = new Collosion(barriers, player, moneys, modifiers, backgroundList); if (!MenuHelper.FirstStart()) { gameState = GameState.InTutorial; } }
protected override void Update(GameTime gameTime) { switch (gameState) { //NOTE: LOAD LEVEL case GameState.LoadLevel: if (firstEntry) { player.RePosition(); firstEntry = false; Thread loadThread = new Thread(() => { foreach (PlayerBackground item in backgroundList) { item.RePosition(); } string level = LevelHelper.SelectLevel(); barriers = new Barriers(level, 4); barriers.Load(this); moneys = new Moneys(level, 4); moneys.Load(this); modifiers = new Modifiers(level, 4); modifiers.Load(this); collosion = new Collosion(barriers, player, moneys, modifiers, backgroundList); collosion.Load(this); gameState = GameState.Gaming; //Transitions.ChangeGameState(ref firstEntry); }); loadThread.Start(); } player.Update(this, ref firstEntry); backBackground.Scroll(this); foreBackground.Scroll(this); walkPlace.Scroll(this); break; //NOTE: GAMING case GameState.Gaming: if (firstEntry) { firstEntry = false; } else { if (LevelHelper.IsLevelEnd(moneys)) { player.isEnd = true; if (player.Position.X >= Consts.PhoneWidth) { Transitions.ChangeGameState(ref firstEntry); gameState = GameState.InEndGameMenu; } } player.Update(this, ref firstEntry); backBackground.Scroll(this); foreBackground.Scroll(this); walkPlace.Scroll(this); barriers.Scroll(this); moneys.Scroll(this); modifiers.Scroll(this); collosion.Update(); if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) { gameState = GameState.InPauseMenu; firstEntry = true; } } break; //NOTE: MAIN MENU case GameState.InMainMenu: if (firstEntry) { player.Score.LoadTotalScore(); player.Score.LoadHighScore(); mainMenu = new Menu(mainButtons); player.isDead = false; player.isEatMoney = false; player.isEatModifier = false; backBackground.RePosition(); foreBackground.RePosition(); walkPlace.RePosition(); collosion.Reset(); firstEntry = false; } backBackground.Scroll(this); foreBackground.Scroll(this); walkPlace.Scroll(this); gameState = mainMenu.IsTouched(this, TouchPanel.GetState(), gameState, ref firstEntry); if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) { this.Exit(); } break; //NOTE: PAUSE MENU case GameState.InPauseMenu: if (firstEntry) { pauseMenu = new Menu(pauseButtons); firstEntry = false; } gameState = pauseMenu.IsTouched(this, TouchPanel.GetState(), gameState, ref firstEntry); if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) { Transitions.ChangeGameState(ref firstEntry); player.Score.GameScore = 0; gameState = GameState.InMainMenu; } break; //NOTE: TUTORIAL case GameState.InTutorial: backBackground.Scroll(this); foreBackground.Scroll(this); walkPlace.Scroll(this); gameState = tutorialMenu.IsTouched(this, TouchPanel.GetState(), gameState, ref firstEntry); if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) { Transitions.ChangeGameState(ref firstEntry); gameState = GameState.InMainMenu; } break; //NOTE: ABOUT case GameState.About: backBackground.Scroll(this); foreBackground.Scroll(this); walkPlace.Scroll(this); gameState = aboutMenu.IsTouched(this, TouchPanel.GetState(), gameState, ref firstEntry); if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) { Transitions.ChangeGameState(ref firstEntry); gameState = GameState.InMainMenu; } break; //NOTE: ENDGAME MENU case GameState.InEndGameMenu: player.Score.SaveTotalScore(); player.Score.SaveHighScore(); gameState = GameState.InMainMenu; break; default: break; } base.Update(gameTime); }