示例#1
0
        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;
            }
        }
示例#2
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();
        }