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)); } }
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); }