Beispiel #1
0
        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);
        }