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