Vous lisez 0 fil de discussion
  • Auteur
    Messages
    • #65230
      sim2000
      Participant

      Bonjour, tout au début de la formation après l’atelier casse briques, j’avais cherché à faire tomber les briques. j’avais fait ce code, j’ai cherché ce que pouvez être un tableau à 3 dimensions et j’ai trouvé une solution, après j’ai du arrêter mon ordinateur avait des problèmes.

      local coordonne = 0
      local haut = 25
      local tab = {}
      local l,c,i = 0,0,0
      local x,y = 0,0
      local BriqueTombe = true

      local balle = {}
      balle.x = 0
      balle.y = 0
      balle.rayon = 10
      balle.vx = 0
      balle.vy = 0
      balle.colle = true

      local raquette = {}
      raquette.x = 0
      raquette.y = 0
      raquette.largeur = 80
      raquette.hauteur = 20

      function love.load()
      largeur = love.graphics.getWidth()
      hauteur = love.graphics.getHeight()
      lar = largeur/10

      for l = 1,5 do
      tab[l] = {}
      for c = 1,10 do
      tab[l][c] = {}
      — tableau à 3 dimensions
      for i = 1,1 do
      tab[l][c][1] = x — coordonné de x
      tab[l][c][2] = y — coordonné de y
      tab[l][c][3] = 1
      end
      x = x + lar
      end
      x = 0
      y = y + haut
      end
      raquette.y = hauteur – raquette.hauteur

      end

      function love.update(dt)
      raquette.x = love.mouse.getX()

      if balle.colle == true then
      balle.x = raquette.x + raquette.largeur/2
      balle.y = raquette.y – balle.rayon
      — ————————————-
      else
      balle.x = balle.x + (balle.vx*dt)
      balle.y = balle.y + (balle.vy*dt)
      — ————————————————
      end

      l = math.floor(balle.y / haut) + 1
      c = math.floor(balle.x / lar) + 1

      — balle qui touche la brique tab[l][c][2] passe à zéro
      if l >= 1 and l <= #tab and c >= 1 and c <= 10 then
      if tab[l][c][3] == 1 then
      balle.vy = 0 – balle.vy
      tab[l][c][3] = 0
      end
      end
      — balle rebondit sur les côtés
      if balle.x > largeur then
      balle.vx = 0 – balle.vx
      balle.x = largeur
      end

      if balle.x < 0 then
      balle.vx = 0 – balle.vx
      balle.x = 0
      end

      if balle.y < 0 then
      balle.vy = 0 – balle.vy
      balle.y = 0
      end

      if balle.y > hauteur then
      balle.colle = true
      end
      ————————————

      local collision = hauteur – raquette.hauteur – balle.rayon
      if balle.y > collision then
      local distance = math.abs(raquette.x + raquette.largeur/2 – balle.x)
      if distance < raquette.largeur/2 then
      balle.vy = 0 – balle.vy
      balle.y = collision
      end
      end

      end

      function love.draw()

      local l,c,i,change = 0,0,0,0
      local x,y = 0,0
      for l = 1,5 do
      for c = 1,10 do
      for i = 1,1 do
      if tab[l][c][3] == 1 then
      love.graphics.rectangle(« fill », tab[l][c][1] +1, tab[l][c][2] + 1, lar – 2, haut – 2)
      end
      if tab[l][c][3] == 0 then
      tab[l][c][2] = tab[l][c][2] + 1 — augmente les coordonnées de y
      love.graphics.rectangle(« fill », tab[l][c][1] +1, tab[l][c][2] + 1, lar – 2, haut – 2)
      end
      end
      end
      end
      love.graphics.circle(« fill », balle.x, balle.y, balle.rayon)
      love.graphics.rectangle(« fill », raquette.x, raquette.y, raquette.largeur, raquette.hauteur)
      end

      function love.mousepressed(x,y,n)
      if balle.colle == true then
      balle.colle = false
      balle.vx = 200
      balle.vy = -200
      end

      end

Vous lisez 0 fil de discussion
  • Vous devez être connecté pour répondre à ce sujet.