Пример #1
0
        // Logic update.
        protected override void Update(GameTime gameTime)
        {
            float dt = (float)(gameTime.ElapsedGameTime.TotalSeconds);

            if (gamestate == GameState.WelcomeScreen)
            {
                if (Keyboard.GetState().GetPressedKeyCount() != 0 || GamePad.GetState(0).IsButtonDown(Buttons.A))
                {
                    gamestate = GameState.Playing;
                }
            }
            else if (gamestate == GameState.EndScreen)
            {
                timeSpentInEndScreen += dt;

                if (timeSpentInEndScreen > 3f)
                {
                    timeMult            += 0.3f;
                    timeSpentInEndScreen = 0f;
                    gamestate            = GameState.WelcomeScreen;
                }
            }
            else if (gamestate == GameState.Playing)
            {
                snow.update(dt);

                if (level == null)
                {
                    if (currentLevel >= allLevelFilenames.Count)
                    {
                        currentLevel = 0;
                        gamestate    = GameState.EndScreen;
                    }

                    this.Window.Title = String.Format("Snowtime Delivery - Level {0}", currentLevel + 1);
                    level             = Level.FromFile(allLevelFilenames[currentLevel]);
                }

                if (level != null && gamestate == GameState.Playing)
                {
                    level.Update(this, dt * timeMult);
                    if (level.shouldRestart)
                    {
                        level = Level.FromFile(allLevelFilenames[currentLevel]);
                    }

                    if (level.isComplete && level.timeSpentComplete > 2f)
                    {
                        level = null;
                        currentLevel++;
                    }
                }
            }


            // Cache the input state in order to find presses and releases.
            oldks = Keyboard.GetState();
            oldgs = GamePad.GetState(0);
            base.Update(gameTime);
        }
Пример #2
0
 static void Update(Level level)
 {
     level.Update();
 }