public int startLevel(int maxLevel, Balle balle, Raquette raquette) { // On verifie si toutes les briques sont désactives List <Brique> briques_old = new List <Brique>(); foreach (var brique in briques) { if (brique.active) { briques_old.Add(brique); } } briques.Clear(); briques = briques_old; // Si le nombre de brique est 0 if (briques.Count == 0) { level++; raquette.reset(); balle.reset(); if (level > maxLevel) { return(level); } int[,] level_position = getLevel("levels/" + level + ".txt"); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { if (level_position[x, y] == 1) { Brique brique = new Brique(base.Game, "brique", new Vector2(x * 70 + 9 * x + 13, y * 15 + 8 * y + 8)); briques.Add(brique); this.Game.Components.Add(brique); } else if (level_position[x, y] == 2) { BriqueVitesse brique = new BriqueVitesse(base.Game, "briqueVitesse", new Vector2(x * 70 + 9 * x + 13, y * 15 + 8 * y + 8)); briques.Add(brique); this.Game.Components.Add(brique); } } } if (level > 1 && level <= maxLevel) { _ballBouncePartie.Play(); } } return(level); }
public bool collision_brique(Brique brique, float multiplicateur_vitesse) { // Si la balle touche la brique, on la fait changer de sens if (brique.rectangle.Intersects(new Rectangle((int)position.X, (int)position.Y, texture2D.Width, texture2D.Height))) { brique.playSon(); direction = new Vector2(direction.X, -direction.Y); speed += multiplicateur_vitesse; brique.active = false; return(true); } return(false); }