[Résolu] Comment faire un regroupement de plusieurs variables dans une seule variable, pour ensuite en faire une valeur d'une variable complexe ? Please
Bonsoir tout le monde !
Je viens d'arriver sur GameCodeur, pour réaliser mon rêve de travailler dans le jeu-vidéo.
Je suis en train d'apprendre les bases ça va ça se passe mais j'ai un problème sur l'exercice de création de personnage de RPG.
En fait j'aimerais donner plusieurs valeurs au perso, et que ce soit elles-mêmes des regroupements de plusieurs valeurs.
Exemple : heros = { caractéristiques, inventaire, magie )
caractéristiques = {}
caractéristiques.nom = "snake"
caractéristiques.vies = 100
inventaire = {}
inventaire.armes = 100
inventaire.boucliers = 7
pareil pour magie
Je vous envoie une capture d'écran, j'ai pas compris l'explication dans le chat 😓
Merci pour votre aide et portez-vous bien !
Tout d'abord il est important que tu intègres que ton programme est interprété dans l'ordre de tes lignes de code.
Tu ne peux donc pas commencer par :
heros = { caractéristiques, inventaire }
Car à ce stage, caractéristiques et inventaire n'existent pas encore.
(au passage ne mets pas d'accent, les langages de programmation les refusent, donc ton code ne fonctionnera pas avec "caractéristique")
Donc, commence par déclarer et initialiser caractéristiques et inventaire (et la magie dans ton exemple) AVANT de les intégrer à héros.
Ensuite, pour intégrer tes tables "caracteristiques" et "inventaire" dans ton "heros" il faut considérer que chacune de ces tables est un membre de heros.
Exemple qui fonctionne :
heros = {} heros.caracteristiques = {} heros.caracteristiques.nom = "snake" heros.caracteristiques.vies = 100 heros.inventaire = {} heros.inventaire.armes = 100 heros.inventaire.boucliers = 7
Tu pourras ensuite accéder à tes membres et sous-membres en écrivant le chemin complet pour les atteindre :
print(heros.caracteristiques.vies)
Ce que je peux rajouter c'est que tu vas un peu vite. Avance sur la suite. Là cet exemple était fictif et il faut avancer pour voir dans quels cas les tables et variables complexes (tables Lua) sont utilisées dans la vraie vie.
@deesla Salut personnellement je n'agrandirai pas les tables... sinon tu vas te perdre un certain moment. je ferais des tables bien spécifique.
héro={nom = "Snake" ,vie = 100, faim = 100, soif = 100} par exemple
inventaire = {}
armes = {}
magie = {}
le 3 tables vides te serviront pour insérer les différents éléments pour qu'ils soient indépendant dans ton code. Sinon à un moment donné tu vas te perdre et ton code sera long. Ce que je veux dire par la c'est que si tu fais des tables différentes tu pourras plus les détailler sans te perdre.
Aahh ok j'ai compris super !
{} comme valeur de heros signifie : c'est une table et après je peux y insérer des trucs comme ça. J'en étais pas loin mais j'avais plus pensé que le code s'exécute dans l'ordre.
Merci David et Bretz pour vos conseils j'en prends note, à bientôt et que la force soit avec vous !
J'ai encore une question en fait, je pense que c'est bon là je vous montre, mais ça change quoi si je mets local avant heros ?
Le mot clé local va rendre la variable "locale" au bloc de code qui la contient.
Un bloc de code c'est soit un fichier lua si le code est écrit à la racine, soit une fonction, soit un if, soit un for.
Dans ton cas, quand on a un seul fichier main.lua ça n'a pas d'importance. Mais à l'intérieur d'une fonction ou d'un if/for il faut toujours ajouter "local" sinon la variable devient une variable globale dont la valeur va persister et rentrer en conflit avec d'autres variables du même nom, etc.
- 6 Forums
- 262 Sujets
- 906 Posts
- 0 En ligne
- 45.6 {numéro}K Membres