Bonsoir, je n’ai pas encore tout a fait saisi comment fonctionnent les variables enfants mais je vais vous exposer mon problème:
Variable de scène : vehicule_name
Variable d’objet LMBOI2 : vitesse
Donc enfait, j’ai fais en sorte que lorsque je rentre dans ma LMBOI2 , la variable vehicule_name se rempli avec “LMBOI2” pour enregistrer dans quel vehicule je suis car j’en ai des centaines. Bref, donc comment je peux faire ceci :
en remplaçant LMBOI2 par le contenu de vehicule_name?
car
Je suis pas sûr de comprendre la fin où tu cite ton code (mais je crois me souvenir du contexte)…
Quand tu dis que c’est pas très efficace, c’est quoi le souci ?? Là je pressens un problème de type de variable : quelque soit le type de variable, tu as deux actions possibles sur les variables :
modifier la valeur
modifier le texte
Modifier la valeur signifie que tu restes sur des valeurs numériques ; modifier le texte signifie que tu es sur des valeurs textes.
Dans le cas 1 : Variable(acceleration) fonctionnera pour passer un nombre
Dans le cas 2 : VariableString(acceleration) fonctionnera ; ou tu peux aussi utiliser cette syntaxe ToString(Variable(acceleration))
Voilà, je ne sais pas si tu étais au point sur ce sujet, mais ça introduit la suite : voici un article que j’ai écrit y’a quelques mois/années au sujet des concaténations de variables et noms de variables : http://wiki.compilgames.net/doku.php/concatenation
Je ne sais pas si tu y vois plus clair ou si je suis à coté de la plaque… J’ai peur que tu cherches à utiliser en partie ce que je propose ci-dessus : utiliser des expressions textes dans les champs réservés aux noms d’objets dans les conditions ?
En gros ça illustre le changement de nom de variable parent via des concaténation, dans une boucle, mais où je ne change pas tout le nom de la variable parent, juste une partie numérique.
Mais dans le fond je crois que ce que je comprends pas, c’est plutot ton système entier entre les véhicules, les variables et tout ça. Pas évidant sans vue d’ensemble…
**** c’est la valeur d’une autre variable.
Admettons : Si, clique droit alors faire “test” à la valeur name (donc la variable name contient le texte “test”)
Ensuite je veux que au lieu que : faire 0 à LMBOI2.Variable(acceleration) (LMBOI2 etant un objet predéfini à la condition); que LMBOI2 soit remplacer par le contenu de la variable name donc “test”.
Je comprends pas ce que tu comprends pas du fait que je ne comprends pas
Je veux juste dans le cas Variable(acceleration)/.Variable(vitesse_ar) que **** soit la valeur de la variable name
Pour eviter de remplir cas par cas chaque vehicule:
La quand je rentre dans LMBOI2 le compteur de vitesse divise l’acceleration par la vitesse qui est prédéfinie :
Ce que je veux donc faire, c’est “détécter” dans quel voiture est le joueur par la variable vehicule_name (si joueur est à 10pixel de lmboi2 + touche e appuyée alors valeur vehicule_name = LMBOI2) donc ça c’est juste un enregistrement qui peut servir a afficher un texte sur l’HUD pour savoir dans quel voiture le joueur est.
Maintenant le pb , et je suis sur c’est un truc tout con, une histoire de parentheses/guillemets surement, c’est que je sais pas comment faire de la valeur de la variable vehicule_name donc LMBOI2, la valeur de l’action qui suit: (texte de la valeur de la variable vehicule_name)Variable(acceleration)/(texte de la valeur de la variable vehicule_name.Variable(vitesse_ar) . | texte de la valeur de la variable vehicule_name n’est qu’en fait “LMBOI2” dans cet exemple
Alors là c’est pire je comprends vraiment plus rien en voyant tes events… Où est-ce que tu veux réussir à mettre la valeur texte d’une variable ? dans l’éditeur d’expression ? une condition (sur quoi ?) ? une autre action?
Mon dieu ^^ Victor à l’aide ! xD
Kink, quand tu as Objet.Variable(variable) , tu comprends?
La je veux la même chose mais qu’au lieu que ce soit la variable “variable” de objet, faut que se soit la variable “variable” de ****
**** étant défini par une variable
J’ai bien peur qu’on en revienne au point de départ, et que tu cherches à jouer avec des variables sur un nom d’objet… chose qu’on t’a affirmé plusieurs fois… Je me trompe peut-etre sachant que je ne vois pas toujours pas l’usage type, j’essaie de l’imaginer, en prenant ne compte tout ce que nous a dit (le joueur s’approche d’un vehicule, rentre dedans ,etc.), mais je ne vois pas…
Dans l’exemple que je t’ai donné je fais ce que tu souhaite mais sur le nom du parent d’une variable structure, et ça c’est possible, mais sur le nom d’un objet… Bin ça dépend où tu le fais…
Désolé j’aurai essayé de t’aider en tout cas mais tu devrais envisager de contourner le problème avec des choses que tu sais faire, voir simplifier ton algo, car comme l’avais suggéré victor dans l’autre topic, je pense moi aussi qu’il y a plus simple… Il faudrait que ton nom d’objet soit tjrs le même, et que dans une condition tu vérifie la valeur (name) dans les variables. Du coup tu passerais simplement d’une variable à l’autre, et tu pourrais interagir derriere sur toutes les propriétés (vitesse, acceleration, etc.).
Fais un gdg tout bete avec 2 events, tes variables structures tel que tu t’en sers, et tu me dis “c’est là sur event ou cette action que je veux que le nom du parent de var structure prennne la valeur(name)”. Y’a que comme ça qu’on y arrivera.
Salut, j’ai pas mal bossé avec les variables pour la réalisation de mon inventaire.
Je ne sais pas si c’est ce que tu cherhes exactement, mais voici comment ca se présente chez moi :
La structure est la suivante : CaracteristiquesItemY.XXXX ou un est un chiffre incrémentable contenue dans une variable de la scène (ou une variable objet). Pour lcela, j’utilise la syntaxe suivante :
• Pour appeler la valeur d’une variable :
VariableString(Caracteristiques[“Item”+ToString(Amulet.Variable(ItemNumber))].DessinItem)
• Pour appeler une variable :
Caracteristiques[“Item”+ToString(Amulet.Variable(ItemNumber))].DessinItem
Dans les grandes lignes, voilà ce que je comprends de ton problème :
1/ Chaque véhicule à une variable objet “vehicule_name” avec son nom à l’intérieur (exemple : BUG4X , LMBOI2…)
2/ Tu voudrais pouvoir modifier la variable enfant “vitesse”, en fonction du vehicule sur lequel tu clic (ou sur lequel ton personage se déplace), ce qui permettrait, par exemple :
Lorsque tu clic sur le vehicule, dont la variable objet “vehicule_name” est “LMBOI2”, d’accéder à la variable enfant : “LMBOI2.variable(vitesse)”
Lorsque tu clic sur le vehicule, dont la variable objet “vehicule_name” est “BUG4X”, d’accéder à la variable enfant : “BUG4X.variable(vitesse)”
et ainsi de suite…
C’est bien cela ?
Si oui, voici ce que je ferais :
• Tu mets tous les vehicules ensembles dans un groupe. Par exemple le groupe “TypeVehicule”
• Ensuite, pour appeler la valeur d’une variable enfant “vitesse”, j’utiliserais cette syntaxe :
VariableString(ToString(TypeVehicule.Variable(vehicule_name))].vitesse)
• Et pour appeler une variable :
ToString(TypeVehicule.Variable(vehicule_name))].vitesse
Ca demande à être testé,mais on ne devrait pas être trop loin de la vérité je pense…
(peut être pas besoin de mettre les “string” ou petites modifs à ce niveau)
Par contre, dans les conditions, il conviendra de bien réussir à sélectionner le bon véhicule (avec une condition de collision par exemple, ou de survol souris)
Tiens nous au courant ! Et surtout garde l’espoir ! ! !
Merci beaucoup de ton aide
Par contre comment fais-je si vehicule_name est juste un variable de scène?
De plus, GD me met erreur de synthaxe quand j’utilise ton exemple:
Je me suis donc armé de courage et je t’ai fait un morceau de programme rien que pour toi ! ! ! je suis vraiment sympa !
Rien de tel qu’un bon exemple ! tu peux le télécharger ici :
Ca fonctionne bien chez moi. Par contre, je ne sais pas le gérer sans utiliser de variable objet… car sinon problème au niveau de la sélection de l’objet.
Je te laisse regarder tout ceci. Tiens nous au courant !
A++
Ludo
PS : ca m’a pris plus de 2 heures pour le faire ! je bloquais car j’avais oublié des guillemets…
Oh my god Tu as fais tous ça pour moi Je t’en remercie vraiment!
Pour ce qui est de mon problème j’ai su le regler autrement mais ton exemple n’y est pas pour rien^^
Je te remercie infiniment d’avoir pris ton temps pour me faire cet exemple