This screen implements the actual game logic for the gravity chooser. More...
Public Member Functions | |
| GravityChooserGameplayScreen () | |
| Constructor of the screen. | |
| override void | LoadContent () |
| Load graphics content for the game. | |
| override void | UnloadContent () |
| Unload graphics content used by the game. | |
| override void | Update (GameTime gameTime, bool otherScreenHasFocus, bool coveredByOtherScreen) |
| Updates the state of the game. This method checks the GameScreen.IsActive property, so the game will stop updating when the pause menu is active, or if you tab away to a different application. | |
| override void | HandleInput (InputState input) |
| Lets the game respond to player input. Unlike the Update method, this will only be called when the gameplay screen is active. | |
| override void | Draw (GameTime gameTime) |
| Draws the gameplay screen. | |
This screen implements the actual game logic for the gravity chooser.
Definition at line 23 of file GravityChooserGameplayScreen.cs.
| GravityChooser.GravityChooserGameplayScreen.GravityChooserGameplayScreen | ( | ) |
Constructor of the screen.
Definition at line 69 of file GravityChooserGameplayScreen.cs.
00070 { 00071 TransitionOnTime = TimeSpan.FromSeconds(1.5); 00072 TransitionOffTime = TimeSpan.FromSeconds(0.5); 00073 }
| override void GravityChooser.GravityChooserGameplayScreen.Draw | ( | GameTime | gameTime | ) | [virtual] |
Draws the gameplay screen.
Reimplemented from NewGamePhysics.StateManager.GameScreen.
Definition at line 237 of file GravityChooserGameplayScreen.cs.
00238 { 00239 // Match transition to selector size 00240 gravitySelector.DisplaySize = 1.0f - TransitionPosition; 00241 00242 // Draw gravity selector 00243 gravitySelector.Draw(gameTime); 00244 00245 // If the game is transitioning on or off, fade it out to black. 00246 if (TransitionPosition > 0) 00247 { 00248 ScreenManager.FadeBackBufferToBlack(255 - TransitionAlpha); 00249 } 00250 }
| override void GravityChooser.GravityChooserGameplayScreen.HandleInput | ( | InputState | input | ) | [virtual] |
Lets the game respond to player input. Unlike the Update method, this will only be called when the gameplay screen is active.
Reimplemented from NewGamePhysics.StateManager.GameScreen.
Definition at line 137 of file GravityChooserGameplayScreen.cs.
00138 { 00139 if (input == null) 00140 { 00141 throw new ArgumentNullException("input"); 00142 } 00143 00144 // Look up inputs for the active player profile. 00145 PlayerIndex playerIndex; 00146 if (ControllingPlayer != null) 00147 { 00148 playerIndex = ControllingPlayer.Value; 00149 } 00150 else 00151 { 00152 playerIndex = 0; 00153 } 00154 00155 KeyboardState keyboardState = input.CurrentKeyboardStates[(int)playerIndex]; 00156 GamePadState gamePadState = input.CurrentGamePadStates[(int)playerIndex]; 00157 00158 // The game pauses either if the user presses the pause button, or if 00159 // they unplug the active gamepad. This requires us to keep track of 00160 // whether a gamepad was ever plugged in, because we don't want to pause 00161 // on PC if they are playing with a keyboard and have no gamepad at all! 00162 bool gamePadDisconnected = !gamePadState.IsConnected && 00163 input.GamePadWasConnected[(int)playerIndex]; 00164 00165 if (input.IsInputCancel(ControllingPlayer) || gamePadDisconnected) 00166 { 00167 ScreenManager.AddScreen(new GravityChooserPauseMenuScreen(), ControllingPlayer); 00168 } 00169 else 00170 { 00171 if (input.IsInputSelect(ControllingPlayer)) 00172 { 00173 // Capture selected value 00174 GravityChooser.state.CurrentGravity = gravitySelector.Gravity; 00175 00176 // Quit to main menu 00177 GravityChooserLoadingScreen.Load( 00178 ScreenManager, 00179 false, 00180 null, 00181 new GravityChooserBackgroundScreen(), 00182 new GravityChooserMainMenuScreen()); 00183 } 00184 00185 // Keyboard speed adjustment 00186 if (input.IsInputLeft(null)) 00187 { 00188 longitudeSpeed += speedStep; 00189 } 00190 else if (input.IsInputRight(null)) 00191 00192 { 00193 longitudeSpeed -= speedStep; 00194 } 00195 00196 if (input.IsInputUp(null)) 00197 { 00198 latitudeSpeed += speedStep; 00199 } 00200 else if (input.IsInputDown(null)) 00201 { 00202 latitudeSpeed -= speedStep; 00203 } 00204 00205 // Speed limiter 00206 if (longitudeSpeed < -speedMax) 00207 { 00208 longitudeSpeed = -speedMax; 00209 } 00210 else if (longitudeSpeed > speedMax) 00211 { 00212 longitudeSpeed = speedMax; 00213 } 00214 00215 if (latitudeSpeed < -speedMax) 00216 { 00217 latitudeSpeed = -speedMax; 00218 } 00219 else if (latitudeSpeed > speedMax) 00220 { 00221 latitudeSpeed = speedMax; 00222 } 00223 00224 // Update rotation 00225 gravitySelector.Longitude += longitudeSpeed; 00226 gravitySelector.Latitude += latitudeSpeed; 00227 00228 // Drag speed 00229 longitudeSpeed *= speedDragFactor; 00230 latitudeSpeed *= speedDragFactor; 00231 } 00232 }
| override void GravityChooser.GravityChooserGameplayScreen.LoadContent | ( | ) | [virtual] |
Load graphics content for the game.
Reimplemented from NewGamePhysics.StateManager.GameScreen.
Definition at line 78 of file GravityChooserGameplayScreen.cs.
00079 { 00080 if (this.contentManager == null) 00081 { 00082 this.contentManager = new ContentManager(ScreenManager.Game.Services, "Content"); 00083 } 00084 00085 // Create physical element(s) 00086 GravityCalculator gravityCalculator = 00087 new GravityCalculator(GravityChooser.state.CurrentCelestialObject); 00088 if (GravityChooser.state.CurrentCelestialObject == CelestialObject.Earth) 00089 { 00090 gravityCalculator.EarthGravityModel = GravityChooser.state.CurrentEarthGravityModel; 00091 } 00092 00093 this.gravitySelector = new GravitySelector( 00094 ScreenManager, 00095 GravityChooser.state.CurrentCelestialObject, 00096 gravityCalculator); 00097 00098 // Reset game time 00099 ScreenManager.Game.ResetElapsedTime(); 00100 }
| override void GravityChooser.GravityChooserGameplayScreen.UnloadContent | ( | ) | [virtual] |
Unload graphics content used by the game.
Reimplemented from NewGamePhysics.StateManager.GameScreen.
Definition at line 106 of file GravityChooserGameplayScreen.cs.
| override void GravityChooser.GravityChooserGameplayScreen.Update | ( | GameTime | gameTime, | |
| bool | otherScreenHasFocus, | |||
| bool | coveredByOtherScreen | |||
| ) | [virtual] |
Updates the state of the game. This method checks the GameScreen.IsActive property, so the game will stop updating when the pause menu is active, or if you tab away to a different application.
Reimplemented from NewGamePhysics.StateManager.GameScreen.
Definition at line 120 of file GravityChooserGameplayScreen.cs.
00122 { 00123 base.Update(gameTime, otherScreenHasFocus, coveredByOtherScreen); 00124 00125 if (IsActive) 00126 { 00127 // Animate gravity selector 00128 gravitySelector.Update(gameTime); 00129 } 00130 }
1.6.2