#56260
doumdoum
Participant

Salut
Dans ton code, à la première collisions tu changes bien la valeur en 1.
Le hic c’est juste derrière: tu refais un test pour savoir si la valeur est 1.
Et c’est forcément le cas. Donc ta variable devient zéro.

Tu peux utiliser elseif comme ça :
(regardes là où j’ai sauté des lignes)

local l = math.floor(Balle.x/Brique.largeur) + 1
local c = math.floor(Balle.y/Brique.hauteur) + 1
 
 if l>=1 and l<=15 and c>= 1 and c<=#niveau then
   if niveau[c][l] == 2 then
     if Balle.vx < 0  then
       Balle.vy = Module_vitesse *(math.sin(Balle_angle))
       niveau[c][l] = 1
     else
       Balle.vy = 0 - Module_vitesse *(math.sin(Balle_angle))
       niveau[c][l] = 1 
     end 

   elseif niveau[c][l] == 1 then

     if Balle.vx < 0  then
       Balle.vy = Module_vitesse *(math.sin(Balle_angle))
       niveau[c][l] = 0
     else
       Balle.vy = 0 - Module_vitesse *(math.sin(Balle_angle))
       niveau[c][l] = 0 
     end  
   end
 end