- Ce sujet contient 0 réponse, 1 participant et a été mis à jour pour la dernière fois par
sim2000, le il y a 2 années et 1 mois.
-
AuteurMessages
-
-
12/06/2020 à 9:19 #65230
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 = truelocal balle = {}
balle.x = 0
balle.y = 0
balle.rayon = 10
balle.vx = 0
balle.vy = 0
balle.colle = truelocal raquette = {}
raquette.x = 0
raquette.y = 0
raquette.largeur = 80
raquette.hauteur = 20function love.load()
largeur = love.graphics.getWidth()
hauteur = love.graphics.getHeight()
lar = largeur/10for 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.hauteurend
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)
— ————————————————
endl = 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
endif balle.x < 0 then
balle.vx = 0 – balle.vx
balle.x = 0
endif balle.y < 0 then
balle.vy = 0 – balle.vy
balle.y = 0
endif 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
endend
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)
endfunction love.mousepressed(x,y,n)
if balle.colle == true then
balle.colle = false
balle.vx = 200
balle.vy = -200
endend
-
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.