Demande de tuto sur les variables structures (dynamiques)

Hep,

Bon je sèche, rapport à mon idée de créer des variables dynamiques à la volée, j’aimerais donc qu’on me fasse un tuto car c’est très opaque à mon sens sur le wiki et dans les réponses partielles sur le forum :

j’ai une variable globale nommés var_globale, j’ai un événement qui créer un objet, cet objet a une variable d’objet “id” qui s’incrémente à chaque fois que l’objet est créé. Admettons qu’on créé 3 objets…

Je voudrais que chaque objet créé un enfant de variable globale avec cet ID (var_globale.enfant1, var_globale.enfant2, var_globale.enfant3), pour ensuite pouvoir crééer des enfants à chacun de ces enfants… je sèche sur la syntaxe !

Le problème est que aucune action ne permet de créer un enfant, et dans la déclaration du nom de variable (qui permet de la créé dynamiquement) je ne peux pas utiliser de formule !

En gros je veux faire : Faire = ToString(mon_objet.Variable(id)) à la variable globale var_globale.[“enfant”+ToString(mon_objet.Variable(id)]

Mais forcement j’obtiens dans le débugueur la chose suivante : var_globale.[“enfant”+ToString(mon_objet.Variable(id)] en lieu et place de var_globale.enfant0, var_globale.enfant1, var_globale.enfant2…

Je suis pourtant très habitué à la manipulation de tableau en php ou js, mais là j’en reviens à mon problème de l’autre topic : aucune action ne permet de créé l’enfant dynamique (juste l’enlever? mais j’en vois pas l’intéret à moins d’en avoir des dizaines ce qui n’est pas mon cas).

J’aimerais un coup de patte là dessus svp, et pourquoi j’en profite pour suggérer une évolution de Gdevelop sur ce point, ça éviterait de manipuler des syntaxes à rallonge avec 25 parenthèses imbriquées, même si je doute que les gens sans bagage de programmation aille aussi loin.

Merci d’avance !

EDIT : et quit à ce qu’il y ait un tuto/example sur le sujet, l’utilisation d’un texte en debug avec ToJson() serait la bienvenue également.

Soit tu utilises :

var_globale.enfant

(auquel cas tu ne peux pas utiliser d’expression texte pour désigner l’enfant)
ou

var_globale.["enfant"+ToString(mon_objet.Variable(id)]

Pas de points si tu utilises .
(et là tu peux utiliser une expression texte pour désigner l’enfant)

Bon c’est déjà à peine mieux :slight_smile: merci

Par contre ToJSON me retourne toujours 0 (alors que si je convertis en texte en pointant sur un enfant je récupère bien la valeur que je souhaite), j’ai raté quoi par rapport à cette fonction ? Elle devrait me retourner l’intégralité du tableau si je fais ToJSON(var_globale) ?

C’est une expression texte, pas une expression numérique.
Sinon, je crois que ça prend uniquement les variables de scène.

Ok,

Pour les enfants d’enfants, même chose ?

var_globale[“enfant”+ToString(mon_objet.Variable(id))].sousEnfant ?

Encore un problème de syntaxe…

Edit : ok ça marche ! autant pour moi !