// 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); }
static void Update(Level level) { level.Update(); }