Pour stocker des valeurs, nous avons vu l’utilisation des tables mais nous pouvons également le faire avec les « strings », guillemets. On appellera ces tables, des Objets ce qui va nous permettre d’emmagasiner davantage encore de variables.
function love.load()
rect = {}
-- ces deux formes veulent dire la même chose
rect["width"] = 100
rect.width = 100
end
On pourra donc aussi utiliser le point pour donner des propriétés à cette table . Cette typographie sera d’ailleurs privilégiée parce que plus rapide et claire.
function love.load()
-- faire attention à la casse employée
listOfRectangles = {}
end
function createRect()
rect = {}
rect.x = 100
rect.y = 100
rect.width = 70
rect.height = 90
rect.speed = 100
-- on insère le nouveau rectangle dans la table
table.insert(listOfRectangles, rect)
end
function love.keypressed(key)
-- les deux signes égal signifient une comparaison
if key == "space" then
createRect()
end
end
function love.update(dt)
for i,v in ipairs(listOfRectangles) do
v.x = v.x + v.speed * dt
end
end
function love.draw(dt)
for i,v in ipairs(listOfRectangles) do
love.graphics.rectangle("line", v.x, v.y, v.width, v.height)
end
end
Donc en traduction :
Dans la fonction love.load ( ), nous avons crée une table qui s’appelle listOfRectangles puis une fonction createRect . On y a également inséré une nouvelle table rect et à cette table de nouvelles propriétés comme l’abscisse, l’ordonnée, la largeur, la hauteur et la vitesse à affecter à ce nouveau rectangle.
Puis dans la fonction love.keypressed nous donnons pour instruction de créer un nouveau rectangle à chaque fois que la touche « espace » sera pressée.
Dans la fonction love.update(dt) qui va mettre à jour votre programme à chaque itération on insère une boucle for ipairs (vu juste précédemment dans le #7) qui indique la vitesse à calculer pour chaque appel de la fonction listOfRectangle.
Dans la fonction love.draw(dt), on insère de la même manière une boucle for ipairs afin que chaque appel de la fonction listOfRectangle, un nouveau rectangle soit crée à l’écran. Ce qui donne ceci :

Source : https://sheepolution.com/learn/book/8
Un rectangle mobile à chaque fois qu’espace est pressée !