[Resolut] Deplacement sprite sur un autre sprite

Bonjour,

Je me permets de demandé une petit aide car je souhaite faire un déplacement un peux spécifique :

J’ai une unité (sprite1) qui ce trouve sur des case (sprite2). Quand je clique dessus, je voudrais qu’elle sois sélectionné (variableA). Puis en cliquant sur une case elle ce déplace sur des coordonné X Y+30 de la case. Jusque là tous va bien.

Le problème c’est que cette unité est déjà sur une case adjacente et quand je clique dessus elle ne ce déplace plus car je lui ai attribuer une varibleB (mouvement) de 1. Du coup, j’ai l’impression que quand je clique sur mon unité, je clique en même temps sur la case juste en dessous ce qui m’enlève 1 point de déplacement et bloque cette unité.

Voici en gros mon événement :
Clique left mouse
------[P1]Curseur sur unité => Faire =1 à variable de sélection dans unité
------[P2]Variable séléction dans unité = 1
------[P2]Variable Deplacement dans unité = 1 =>positionne unité à X de case et à Y+30 de case
------[P2]Curseur sur case de déplacement----------Enléve 1 à variable Deplacement dans unité

P1 représente le sous-événement 1
P2 représente le sous-événement 2
Je sais pas ci cela est claire pour tout le monde,
je reste a disposition si besoin.

Merci pour vos réponses si il y en a
Cordialement

Bonjour

A ta place je mettrai tout ce qui est [P2] avant [P1]
Je m’explique : Quand tu clic sur l’unité sa variable sélection prend 1. Puis on continue dans [P2] directement, le test (sélection de unité = 1) renvoie vrai puisque tu vient juste de mettre 1 dans sélection.

Ensuite la variable déplacement est égale à 1 puis tu lui enlève 1 donc elle est égale à 0, tu ne peu donc plus bouger
Il faut inverser les 2 dernier événement de [P2] aussi car sinon le jeu ne sais pas à quelle case correspond les coordonnées X Y+30.

Ce qui nous donne :
Clique left mouse
------[P1]Variable séléction dans unité = 1
------[P1]Curseur sur case de déplacement----------Enléve 1 à variable Deplacement dans unité
------[P1]Variable Deplacement dans unité = 1 =>positionne unité à X de case et à Y+30 de case
------[P2]Curseur sur unité => Faire =1 à variable de sélection dans unité

Dernière remarque : Tu ne remet jamais la variable sélection de unité à 0

Je ne sais pas si j’ai était très claire, n’hésite pas à détaillé ton problème si tu le rencontre toujours

Oui, tu es très claire pour moi. merci.

Je teste cela et vous tiens informer. Comme sa, cela pourras aidé d’autres personnes dans le besoin.

merci encore.

Edit 1: Après test. Cela ne fonctionné pas. j’ai rajouter une condition dans P1. Le curseur n’est pas sur UNITE
Ce qui nous donne :
Clique left mouse
------[P1]Variable séléction dans unité = 1
------[P1]Curseur sur case de déplacement----------Enléve 1 à variable Deplacement dans unité
------[P1]Variable Deplacement dans unité = 1 =>positionne unité à X de case et à Y+30 de case
------[P1]Curseur n’est pas sur unité
------[P2]Curseur sur unité => Faire =1 à variable de sélection dans unité

Je ne clos pas ce message car j’aurais surement d’autre question. maintenant, il faut qu’il détecte deux unité identique sur une des case différente.
Voici une image pour illusté un peu:

Bonjour,

Me revoici avec d’autres questions.

  1. Est-il possible de détecter la présence d’un objet sur la scène, si oui, pouvez-vous me conseiller sur la procédure a suivre?

2.J’ai installé plusieurs variable temps(Heure; minute ; seconde). Je souhaite que cela sois considéré comme un timer. Auriez-vous une idée de comment faire?

Je sais, ce genre de question est plutôt pour les personnes qui ne cherche pas. mais je vous assure que je cherche, mais là, j’avoues être bloqué.

Merci d’avance

Oui ! Grace à la condition “Nombre d’objets” dans “Tout les objet/objets”

Encore oui !
Tu incrémente la variable seconde de cette façon :

Si chrono seconde = 1 alors seconde prend +1 et remettre le chrono seconde à 0

Pour les autre variables c’est :
Si seconde = 60 alors minute prend +1 et seconde prend 0
Si minutes = 60 alors heure prend +1 et minute prend 0

J’espère que c’est assez claire

Merci, cela est très claire et de plus rapide.

Par contre, une dernier question. (Rennnn!! Il soule avec ces question.)

J’ai deux sprite identique mais n’ont pas les mêmes valeur dans les variables. plus loin dans mon programme, je souhaite faire appele a ces variable. Or quand je clique sur puis sur l’autre, les variable reste identique au premier sprite. Comment peut-on différencier les deux sprites?

Merci de vos rèponses :smiley:

En testant la variable de l’objets :

La condition ne sera pas juste [si le curseur est sur le sprite] mais sera un peu plus longue :

Si le curseur est sur le sprite
ET la variable de l’objet est égal à ?

La condition sur les variable de l’objet ce trouve dans “tous les objets/variables”

Si j’ai saisie ton problème cela devrai le résoudre, sinon reformule ta question

Alors, que dire. Merci Merci Merci.

Un moment que je m’arrachais les cheveux pour ça. Déjà avec le timer mais timer + selection d’unité => Il doit me manqué un peux de cheveux du coup.

Bon, je vais pouvoir commencé les vrais travaux sur le jeux maintenant.
Encore merci. je clos le sujet

Il n’y a vraiment pas de quoi :slight_smile:
Si tu a d’autres questions n’hésite surtout pas
Bonne chance pour ton projet