[RESOLU] Problème avec un objet d'un groupe

Bonjour,

Je viens de créer un groupe d’objets appelés “Decors” contenant les sprites suivants : Rochers, Coffre, RocherInamovible et RocherTirable.
J’ai créé des évenements liés à ce groupe (voir fichier joint) pour détecter si, lorsqu’on clique sur un sprite appelé “RocherPoussable”, un des objets du groupe Decors se trouve juste à droite ou juste à gauche de l’objet cliqué.
Si oui, la variable de la scène StopPousse est mise à 1 et l’objet cliqué n’est pas déplacé, sinon, il est déplacé.
Tout fonctionne correctement.

Par contre, si j’ajoute au groupe Decors l’objet RocherPoussable, ça ne fonctionne plus.
L’objet poussable est toujours déplacé, il traverse donc tous les objets du groupe Decors, la variable StopPousse n’est jamais mise à 1.
Quelle pourrait être la particularité de l’objet RocherPoussable pour que le fait de l’ajouter au groupe pertube autant le fonctionnement de mon évènement, car non seulement l’objet RocherPoussable traverse un autre objet RocherPoussable, mais aussi tous les autres objets du groupe alors que ce n’était pas le cas avant qu’il fasse partie du groupe ?
Merci.

PS : C’est mon premier post, merci de m’informer si je n’ai pas respecté les règles du forum.

Je ne sais pas comment régler ton problème…
Mais je voulais te dire que ton message respectait bien le forum.
Et aussi, bienvenue sur le forum!

Merci Badwar.

Je suis toujours bloqué.
J’ai retiré du groupe “Decors” mon objet RocherPoussable et ajouté un test pour chaque RocherPoussable qui fait passer à 1 la variable StopPousse2 (elle est initialisée à 0) si un autre objet RocherPoussable est juste à côté.

Mes variables PosX et PosY sont bien mises à jour avec les positions de l’objet cliqué lorsqu’on clique sur un RocherPoussable et bien qu’il y ait un autre RocherPoussable juste à côté (dans mon cas à 50 pixels à droite ou à gauche), la variable StopPousse2 ne passe pas à 1 !

Il doit bien y avoir un moyen de tester si deux objets qui ont le même nom se trouvent l’un à côté de l’autre ?
Si quelqu’un peut m’aider …
Merci

Oui, c’est vrai que tu touches en point faible de GD, deux objets du même nom que tu dois utiliser séparement :frowning: .
Moi aussi, j’ai eu des pb comme ça, il faut trouver une solution de contournement, avec par exemple un autre objet qui est sur chaque RocherPoussable, (superposé et invisible). :wink:

Merci pour ta réponse Victor, mais en ajoutant un objet invisible sur mes objets RocherPoussable, j’aurai le même problème à moins que ces objets aient un nom différent pour chaque objet RocherPoussable.
Dans ce cas, autant avoir un nom différent pour chaque RocherPoussable dès le départ, non ?

Je ne comprends quand même pas pourquoi l’évènement “Pour chaque objet … répéter …”, ne fait pas passer ma variable StopPousse2 à 1 !
J’ai deux objets RocherPoussable placés aux coordonnées suivantes :
[550 349] et [600 349]

Ce type d’évènement sert bien à répéter le même test à plusieurs objets de la scène ayant le même nom … ou alors je n’ai pas compris le rôle de ce type d’évènement.

Non, au lieu de faire les conditions entre les deux objets poussable, tu la fais entre un obj poussable et un repère invisible. :wink:
L’événement Pour Chaque obj, répète les conditions, actions et sous-événements pour chaque obj ‘MACHIN’.

J’ai essayé de mettre en application ta proposition Victor.
J’ai fait un nouveau projet avec les évènements suivants :

Sur la scène, deux objets RocherPoussable [200 150] et [250 150].
Je clique sur celui de gauche et la variable StopPousse2 reste à 0.
Pourtant, je compare bien la position de deux objets différents (RocherPoussable et Test).
Ai-je bien compris ta proposition ?
Je suis vraiment bloqué là !

Utilises-tu la dernière version de Game Develop, car les expressions ressemblent aux anciennes expressions de Game Develop. :confused:

J’ai la version 1.3.9262.46622 Release.
Si ce n’est pas la dernière version, et que j’installe la dernière version, mon travail sera-t-il perdu ?

Les nouvelles versions peuvent bien évidemment ouvrir les jeux des anciennes ( Le contraire n’est pas possible par contre ).

Pour ta demande d’aide, rajoute une action “Prendre en compte tous les objets RocherPoussable” à l’événement n°2 (en dernière position).

Alors, j’ai installé la verion 1.4.9606.48375 Release.

J’ai apporté ta modification Victor et pour mon test ça fonctionne, la variable StopPousse2 passe bien à 1. :wink:

J’ai donc essayé d’apporter cette modification dans mon projet d’origine, mais je rencontre un autre problème :
Si je mets “Prendre en compte tous les decors” dans les sous-évènements 1 et 2 de mon évènement 90, tous mes objets du groupe Decors se mettent à bouger en même temps.

Apercu4.JPG

Ce que je voudrais, c’est que tous les objets de Decors soient pris en compte pour les tests de position, mais que pour l’animation, seul l’objet cliqué soit pris en compte.

Existe-t-il une autre fonction qui permet de ne plus prendre en compte tous les objets d’un groupe ?

J’espère être clair, en tous cas, merci pour votre aide.

Cete action existe aussi sous forme de condition, il te suffit alors de l’insérer dans les condition en tant que 1ère condition de l’événement 90->1->1

Super, ça fonctionne !!! :smiley:
Merci beaucoup pour l’aide apportée.
Pour celles et ceux que ça intéresserait, voilà la modification apportée :

PS : Comment indiquer que mon problème est résolu ?

Edit ton premier message et met [résolu] devant le titre du sujet. :wink:
Euh, tu as remarquer que avec la nouvelle version, les expressions sont différentes. :smiley:

Oui, d’ailleurs, les nouveautés sont-elles décrites quelquepart ?

Fichier d’aide > A propos > Historique des versions

Ben, dans l’aide, dans la liste des versions, mais en fait les expressions en grandement changée de syntaxe :

  • Tous les textes doivent être encadrés de guillemets,
  • Pour mettre des variables dans du texte, il faut faire par exemple → "Mon nom est " + VariableString(nom) + “.”
  • Pour mettre des variables numérique dans un texte, il faut faire par exemple → "Mon age est " + ToString(Variable(Age))
    (ToString permet de convertir des nombres en texte, et ToNumber permet l’inverse)
  • Pour avoir la valeur d’une variable → Variable(NOMDELAVARIABLE)
  • Toutes les expressions ont changé, il te suffit de la mettre avec l’éditeur d’expression pour voir les changements.

Merci pour vos renseignements. :wink: