Création d'un objet [RESOLU]

Bonjour à tous !

J’ai un petit soucis, et j’espère qu’il y a une astuce dans GD qui permettra d’y remédier simplement. :slight_smile:

Voici les données du problème :

Il y a une série d’objets (exemple : gants / casques / bottes / amulette) : ces derniers sont regroupés dans un groupe “armures”.
Tous ces objets ont une variable objet “selection” .
Tous les objets ont leur variable “selection” = 0 , sauf un seul qui a sa variable “selection” = 1

Voilà ce que j’aimerais faire :

Si la variable objet “selection” de “armure” est égale 1, alors créer l’objet “armure” à la position 100,100.

Mais ça ne fonctionne absolument pas… j’ai l’impression que GD me choisi un objet au hasard, ou alors le premier du groupe… dans tous les cas, ce n’est pas le bon objet qui est créé.

Voili Voilou ! Avez de bonnes idées ? :unamused:

Merciiiiii ! :slight_smile: :slight_smile: :slight_smile:

Difficile d’attaquer les variables d’objets en les appelant via leurs groupes d’appartenance…

Faudrait voir ta syntaxe event/action, dans un event "Pour chaque objet “MonGroupe”, un sous event "la variable “selected” de l’objet “MonGroupe” = 1 ; en théorie ça passe.

Tu reset bien la valeur selected à 0 sur les autres objets ?? (t’en as pas 3 sur selected = 1 ?).

Salut Kink,

Merci pour ta réponse.
Oui la valeur “selected” est bien égale à 0 pour tous les autres objets.

Utiliser “Pour chaque objet” était une bonne idée, hélas ça ne fonctionne pas non plus…

J’ai fait un bout de programme test (projet séparé) pour tenter d’éclaircir le problème.

En fait, il n’y a pas de lien entre la condition et l’action.
GD va d’abord voir si un objet du groupe a sa variable “selected” = 1, si oui, il créé en fait le premier objet du groupe en fonction de l’ordre alphabétique des noms des objets.
Si 3 objets “A”, “B” et “C”, il va créer l’objet “A”, indépendamment de la variable “selected” demandée dans la condition.

Il est vrai que les variables (et les variables objets) permettent difficilement de sélectionner 1 occurrence d’objet d’un groupe. Les collisions, habituellement, sont plus efficaces pour effectuer la sélection du bon objet.
J’ai donc, dans le projet test, mis un objet image en background, et essayé pleins de choses avec “les collisions” et “Pour chaque objet”. A chaque fois le même résultat : GD créer l’objet du groupe en fonction de l’ordre alphabétique des noms des objets…

Honnêtement, je sèche… :cry:

Je pense qu’il y a une solution pourtant, j’ai fait des trucs bien plus tordus, est-ceque tes objets A B C ont une autre variable (d’instance objet) qui permette de les identifier ? Par exemple une variable nom = gant ou casque ? Si oui ca peut être à doublonner avec selected.

Envoies ton programme test.

Salut Kink,

Voici le programme test. Merci de ton aide !

1drv.ms/u/s!Airp2FgeHvlPgcJNLtp-IAY0kbxM6A

Je vais encore essayer de mon coté ce week-end !

A++

Ca y est, j’ai trouvé !

Tu avais complètement raison Kink :slight_smile: Merci !

Pour chaque objet du groupe, j’ai ajouté une variable objet “nom” avec en texte son propre nom (A, B ou C).
Ensuite c’est très simple :
Si la variable “selection” du groupe “armures” = 1 , alors Parmis les objets “armures”, créer l’objet ayant le nom “armures.VariableString(nom)” à la position 100,100.

Et ça fonctionne !

Un grand merci à toi, Kink, pour cette bonne idée !
En espérant que le topic puisse servir à d’autres gens :slight_smile:

A++

:slight_smile:

Passes le topic en “résolu” si tu passes par là.

c’est fait ! :slight_smile: