public void Update(TimeSpan t) { // Update state blinkTimer.Update(t); starField.Pan(0, StarField.StarSpeed, t); // Render title game.Screen.Clear(Palette.ClearFill); starField.Render(game.Screen); Fonts.HeavyData.Render("BLACK NECTAR", 100, 100, 72, Palette.Energy1, game.Screen); Fonts.HeavyData.Render("SECOND HALF", 230, 170, 36, Palette.Energy1, game.Screen); if (!blink) { Fonts.HeavyData.Render("CLICK OR PRESS KEY TO CONTINUE", 100, 390, 30, Palette.Energy1, game.Screen); } game.Screen.Invalidate(); // Check for key presses and change to game KeyboardState keys = Keyboard.GetState(); if ((keys.GetPressedKeys().Length > 0 || MouseFixed.LeftButton) && oldInputState == 0) { game.ChangeToInstructionScreen(); } else { oldInputState = keys.GetPressedKeys().Length > 0 ? 1 : 0; oldInputState += MouseFixed.LeftButton ? 1 : 0; } }
public void Update(TimeSpan t) { // Update world starField.Pan(0, StarField.StarSpeed, t); if (State == GameStateType.Playing) { Player.Update(t); } Energy.Update(t); Asteroids.Update(t); if (State == GameStateType.Playing) { Player.HandleCollisions(t); survival += t; } else { dying += t; if (dying.TotalSeconds > DyingDuration) { game.ChangeToGameOverScreen(survival); } } if (Player.Energy <= 0.0f) { State = GameStateType.Dying; } // Render world game.Screen.Clear(Palette.ClearFill); starField.Render(game.Screen); Energy.Render(game.Screen); Player.RenderPlayer(game.Screen); Asteroids.Render(game.Screen); Player.RenderEnergyBar(game.Screen); Fonts.HeavyData.Render(String.Format("SURVIVAL: {0:D2}:{1:D2}", survival.Minutes, survival.Seconds), 10, 5, 22, Palette.Energy1, game.Screen); // Fade out while dying if (State == GameStateType.Dying) { fadeRect.Opacity = dying.TotalSeconds / (double)DyingDuration; game.Screen.Render(fadeRect, fadeTransform); } game.Screen.Invalidate(); }