Communauté

Atelier inventaire ...
 
Notifications
Retirer tout

Atelier inventaire RPG

3 Posts
2 Utilisateurs
0 Likes
325 Vu
0
Début du sujet

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

3 Réponses
0

@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)

0
Début du sujet

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 😉

0

Super:)

 

Je suis débutant aussi, on est là pour s'entraider.

Répondre
Share:

Dialoguez avec les autres membres de la gamecodeur school.

Accédez maintenant à notre serveur Discord privé : Entraide, Game Jams, Partage de projets, etc.

Vous devez être membre de la Gamecodeur School Premium pour être autorisé à accéder au serveur.