Ejemplo n.º 1
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();
            }
        }