Atelier inventaire RPG
Bonjour,
Dans le code de l'atelier inventaire RPG :
J'ai tenté d'ajouter une function de commande, en dupliquant simplement la function :
function love.keypressed(key)
if key == "space" then
MonteDeNiveau("EPEE")
end
j'ai donc copié/collé directement à la suite en remplaçant "space" par "up" et "EPEE" par "DAGUE".
Ce qu'il ce passe c'est que la dernière function écrite écrase la précédente et peu importe la key ou l'ordre d'écriture. Pourquoi ?
Simplement pour comprendre la lecture et les priorités. J'ai ajouté un print() pour vérifier.
Merci pour l'aide que vous m'apporterez ^^
Inventaire = {}
function AjouteALinventaire(pID, pEtat, pNiveau, pImage)
local obj = {}
obj.ID = pID
obj.Etat = pEtat
obj.Niveau = pNiveau
obj.Image = pImage
table.insert(Inventaire, obj)
end
function MonteDeNiveau(pID)
for k, v in ipairs(Inventaire) do
if v.ID == pID then
v.Niveau = v.Niveau + 1
print(v.ID.." = "..v.Niveau) <-------- print ajouté ---------
break
end
end
end
function love.load()
AjouteALinventaire("EPEE", 100, 1, love.graphics.newImage("images/epee.png"))
AjouteALinventaire("DAGUE", 100, 1, love.graphics.newImage("images/dague.png"))
AjouteALinventaire("HACHE", 100, 1, love.graphics.newImage("images/hache.png"))
end
function love.update(dt)
end
function love.draw()
local y = 1
for k, v in ipairs(Inventaire) do
love.graphics.draw(v.Image, 1, y)
--love.graphics.print(v.ID .. " " .. v.Niveau, 1, y)
y = y + 70
end
end
function love.keypressed(key)
if key == "space" then
MonteDeNiveau("EPEE")
end
end
function love.keypressed(key)
if key == "up" then
MonteDeNiveau("DAGUE")
end
end
@resu salut:) C'est normal, tu dois mettre up et space dans la même fonction, löve2D ne prendra en compte qu'une fonction love.keypressed, comme il exécute le code ligne par ligne il écrasera par défaut la première fonction love.keypressed (si je ne dis pas de conneries😅). Du coup, ta fonction love.keypressed devrait ressembler davantage à ça :
function love.keypressed(key)
if key == "space" then
MonteDeNiveau("EPEE")
end
if key == "up" then
MonteDeNiveau("DAGUE")
end
end
Ca devrait marcher, n'hésite pas à me dire si ça n'a pas marché (Tu peux essayer avec if/elseif également)
Hello Samy,
Merci pour ta réponse, ça fonctionne oui ^^
Ca me permet de comprendre un peu plus le fonctionnement 🙂 je débute de zéro, j'ai beaucoup de chose à assimiler 😉
Super:)
Je suis débutant aussi, on est là pour s'entraider.
- 6 Forums
- 256 Sujets
- 897 Posts
- 0 En ligne
- 45.6 {numéro}K Membres