Je débute sur GDevelop et j’essaie de développer une application pour les élèves d’élémentaires : “fleurs des nombres 99”.
Je suis bloquer pour comptabiliser des objets créés et dans une zone précise.
Sur la partie gauche en bleue, il y a des boutons fixes (1, 2, 3…).
Ce sont des sprites sans comportement : bouton_fixe_1, bouton_fixe_2, etc.
Lorsque l’on clique dessus, des jetons (avec comportement déplaçable) sont créés dans la zone principale.
jeton_1 (qui a une valeur 1), jeton_2 (qui a une valeur 2), etc.
Voici le problème que je n’arrive pas à résoudre :
Lorsque les jetons créés sont déplacés dans une zone précise, leur valeur s’additionne.
Par exemple, dans mon schéma, un élève a déplacé des jetons dans une zone, ce qui donnera un total de 1+1+2+3=7
La différence est que tous les objets étaient uniques et posés d’avance sur la scène.
J’ai donc utilisé la fonction de “collision” pour calculer la valeur d’une zone en fonction des objets en collision dessus.
Dans cette nouvelle appli, je suis bloqué car
les objets sont créés à partir de clics ; il existe donc plusieurs “jeton_1”, “jeton_2”…
si j’utilise “collision”, ça ne fonctionne qu’une seule fois pour le jeton_1. Si il y a un autre jeton_1 (même nom), il ne s’ajoute pas.
Auriez-vous une solution ?
Merci d’avance pour votre aide.
(Si ce n’est pas clair, je peux rejoindre Discord pour échanger vocalement).
Une piste : ajouter les différents objets à compter dans un groupe d’objets, puis compter les objets si leur position X;Y est dans la zone souhaitée. Cela pourrait ressembler à ça :
Ca fonctionne : quand je place des jetons sur une zone spécifique (ici le pétale du haut), les objets sont bien comptabilisé et je peux calculer la valeur totale sur le pétale.
J’ai essayé de mettre une condition inverse (la ligne barrée) mais ça ne fonctionne pas : il suffit d’un jeton sur la zone et un en dehors pour que le total compté soit égal à 0.
Une astuce malheureusement non, il faudrait voir tous les événements et bien comprendre sur la base de quelles interactions ils doivent réagir. Le count() doit pouvoir retourner 0 si aucun objet n’est en collision.
Le comptage d’objets ne fonctionnait pas en temps réel car quand on retirait un objet d’une zone, il était toujours comptabilisé.
J’ai fini par trouver une solution :
Evénement : lorsqu’on clique sur un bouton
Action 1 : les variables sont remises à zéro
Action 2 : comptage des objets en collision.