protected override void Update(GameTime gameTime) { if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape)) { Exit(); } currentScreen.Update(animationTimer, main); currentMap = currentScreen.levelMap; //animation for main sprite animationTimer += (float)gameTime.ElapsedGameTime.TotalMilliseconds; if (main != null) { if (animationTimer > 120) { currentScreen.data = main.Update(currentMap); animationTimer = 0; } } base.Update(gameTime); }
private void Running() { // updating mainSprite if (Fire.Triggered()) { mainSprite.NewDirection(); } else if (MoveUp.Triggered()) { mainSprite.NewDirection(0); } else if (MoveRight.Triggered()) { mainSprite.NewDirection(1); } else if (MoveDown.Triggered()) { mainSprite.NewDirection(2); } else if (MoveLeft.Triggered()) { mainSprite.NewDirection(3); } else { mainSprite.NewDirection(); } mainSprite.Update(); // update all other enemies for (var i = 1; i < sprites.Count; i++) { var sprite = sprites[i]; sprite.Update(); if (mainSprite.CollidesWith(sprite)) { if (sprite is EnemySprite || sprite is RockSprite) { GoToCrashed(); break; } else if (sprite is FlagSprite) { GameState.Score += GameState.FlagScore; GameState.FlagScore += 100; sprites.Remove(sprite); if (!sprites.Any(xx => xx is FlagSprite)) { GoToCompleted(); } } } } GameState.Fuel--; if (GameState.Fuel == 0) { GoToCrashed(); } }