示例#1
0
文件: Game.cs 项目: gariel/JumpingBoy
        private void Score(float delta)
        {
            elapsed += delta;
            if (elapsed > 49999)
            {
                return;
            }

            var score = ((int)(elapsed * 2)).ToString();

            for (var i = 0; i < score.Length; i++)
            {
                var n = numbers[i];
                n.Texture  = textGroup.Load(score[i].ToString());
                n.Modulate = Color.Lerp(Color.DarkTurquoise, Color.DarkBlue, (float)0.2 * (score.Length - i - 1));
            }
        }
示例#2
0
文件: Game.cs 项目: gariel/JumpingBoy
        public override void Build()
        {
            random = new Random();
            floor  = Rect.Height * 0.9f;

            player = new AnimatedSprite(
                new TextureKeysProvider(
                    Assets.Image.Group("player"),
                    "1", "2", "3", "4", "3", "2"))
            {
                Scale  = new Vector2(0.5f),
                Left   = Rect.Width * 0.1f,
                Bottom = floor,
            };
            Add(player);

            ground = new ScrollBackground
            {
                Top     = floor,
                Left    = Rect.Left,
                Speed   = new Vector2(500, 0),
                Texture = Assets.Image.Load("ground", "ground")
            };
            Add(ground);

            textGroup = Assets.Image.Group("text");
            var scoreLabel = new FunnySprite
            {
                Texture = textGroup.Load("score"),
                Left    = 100,
                Top     = 30,
            };

            Add(scoreLabel);
            numbers = new List <FunnySprite>();
            for (var i = 0; i < 5; i++)
            {
                var n = new FunnySprite
                {
                    Left  = scoreLabel.Right + 20 + i * 50,
                    Top   = 50 - i * 10,
                    Speed = 30 + i * 10,
                };
                Add(n);
                numbers.Add(n);
            }

            var obsAssets = Assets.Image.Group("obstacles");

            obstacles = new AnimatedSprite[10];
            for (var i = 0; i < obstacles.Length; i++)
            {
                var a = new AnimatedSprite(null)
                {
                    Right = Rect.Left
                };
                Add(a);
                obstacles[i] = a;
            }
            obstacleTypes = new []
            {
                new ObstacleType(
                    frequency: 1f,
                    framesPerSecond: 0,
                    fromGround: 0,
                    provider: new TextureKeysProvider(obsAssets, "rock")),
                new ObstacleType(
                    frequency: 0.1f,
                    framesPerSecond: 2,
                    fromGround: 100,
                    provider: new TextureKeysProvider(obsAssets.Group("bird"), "1", "2")),
            };

            gameOver = new FunnySprite
            {
                Texture        = textGroup.Load("gameover"),
                CenteredOrigin = true,
                Left           = Rect.Center.X,
                Top            = Rect.Center.Y,
                Speed          = 22,
                Visible        = false,
            };
            Add(gameOver);
            replay = new Sprite
            {
                Texture        = textGroup.Load("replay"),
                CenteredOrigin = true,
                Left           = Rect.Center.X,
                Bottom         = floor,
                Visible        = false,
            };
            Add(replay);
        }