public GamePlayScene(Game game, GameOverScene scene) : base(game) { this.game = game; this.maxBricks = bricks.GetLength(0) * bricks.GetLength(1); this.spriteBatch = (SpriteBatch)game.Services.GetService(typeof(SpriteBatch)); this.myFont = (SpriteFont)game.Services.GetService(typeof(SpriteFont)); this.myFont = game.Content.Load <SpriteFont>("Master"); this.heartlife = game.Content.Load <Texture2D>("heart_life"); this.barSprite = new BarSprite(game); this.ballSprite = new BallSprite(game, this); this.explosionSprite = new ExplosionSprite(game, new Vector2(10, 10), false); this.scene = scene; SceneComponents.Add(barSprite); SceneComponents.Add(ballSprite); SceneComponents.Add(explosionSprite); int x = 0, y = 40; for (int i = 0; i < bricks.GetLength(0); i++) { for (int j = 0; j < bricks.GetLength(1); j++) { int randomNumber = random.Next(0, 4); bricks[i, j] = new BrickSprite(this.game, this.ballSprite, this.explosionSprite, new Vector2(x, y), this, brickNames[randomNumber]); x += 80; SceneComponents.Add(bricks[i, j]); } x = 0; y += 27; } }
/// <inheritdoc /> internal override double GetLifePointsCost(DamageableSprite sprite) { return(IsExploding && ExplosionSprite.Overlap(sprite) ? sprite.ExplosionLifePointCost : 0); }