public override void Update( GameTime gameTime ) { base.Update( gameTime ); resetTime -= (float)gameTime.ElapsedGameTime.TotalSeconds; // Fade effect for highlighed menu button if (isFading) { cSelected.A -= 3; if (cSelected.A == 0) isFading = false; } else { cSelected.A += 3; if (cSelected.A == 255) isFading = true; } GamePadState NewPadState = GamePad.GetState(PlayerIndex.One); KeyboardState NewKeyState = Keyboard.GetState(); if (resetTime < 0) { // Change highlighted button on "up" if ((NewKeyState.IsKeyDown(Keys.Up) && OldKeyState.IsKeyUp(Keys.Up)) || (NewPadState.IsButtonDown(Buttons.DPadUp) && OldPadState.IsButtonUp(Buttons.DPadUp))) { sfxButtonPressed.Play(); switch (currentHighlight) { case Highlight.NewGame: break; case Highlight.LoadGame: currentHighlight = Highlight.NewGame; break; //case Highlight.LevelEditor: // currentHighlight = Highlight.LoadGame; // break; case Highlight.Controls: //currentHighlight = Highlight.LevelEditor; currentHighlight = Highlight.NewGame; break; case Highlight.Exit: //currentHighlight = Highlight.Controls; currentHighlight = Highlight.Controls; break; default: break; } } // Level editor is not accessible by normal means: // L + E on keyboard, or left and right bumper on the gamepad if ((NewKeyState.IsKeyDown(Keys.L) && NewKeyState.IsKeyDown(Keys.E)) || (NewPadState.IsButtonDown(Buttons.LeftShoulder) && NewPadState.IsButtonDown(Buttons.RightShoulder))) { ScreenManager.PushScreen(new EditScreen(Game)); } // Change highlighted button on "down" if ((NewKeyState.IsKeyDown(Keys.Down) && OldKeyState.IsKeyUp(Keys.Down)) || (NewPadState.IsButtonDown(Buttons.DPadDown) && OldPadState.IsButtonUp(Buttons.DPadDown))) { sfxButtonPressed.Play(); switch (currentHighlight) { case Highlight.NewGame: //currentHighlight = Highlight.LoadGame; currentHighlight = Highlight.Controls; break; case Highlight.LoadGame: //currentHighlight = Highlight.LevelEditor; currentHighlight = Highlight.Controls; break; //case Highlight.LevelEditor: // currentHighlight = Highlight.Controls; // break; case Highlight.Controls: currentHighlight = Highlight.Exit; break; case Highlight.Exit: break; default: break; } } if ((NewKeyState.IsKeyDown(Keys.Enter) && OldKeyState.IsKeyUp(Keys.Enter)) || (NewPadState.IsButtonDown(Buttons.A) && OldPadState.IsButtonUp(Buttons.A))) { sfxButtonPressed2.Play(); switch (currentHighlight) { case Highlight.NewGame: PlayableCube playCube = new PlayableCube(Game); playCube.Load("_level0"); //playCube.Load( "enemy" ); PlayScreen playScreen = new PlayScreen(Game, playCube); ScreenManager.PushScreen(playScreen); break; case Highlight.LoadGame: Stream saveStream = StorageManager.Instance.OpenWriteFile("CyberCube.sav"); // Saving functionality here. Stream loadStream = StorageManager.Instance.OpenReadFile("CyberCube.sav"); // Loading functionality here. StorageManager.Instance.Finish(); break; //case Highlight.LevelEditor: // ScreenManager.PushScreen(new EditScreen(Game)); // break; case Highlight.Controls: ScreenManager.PushScreen( new ControlsScreen( Game ) ); break; case Highlight.Exit: Game.Exit(); break; default: break; } } } OldPadState = NewPadState; OldKeyState = NewKeyState; }
private void LoadNextLevelAsync() { #if XBOX //mLoadThread.SetProcessorAffinity( 3 ); #endif if ( Cube.NextLevel == null ) return; PlayableCube playCube = new PlayableCube( Game ); playCube.Load( Cube.NextLevel ); mNextPlayScreen = new PlayScreen( Game, playCube ); /* your code goes here */ }