[Résolu]Déplacement et contrainte


#1

Bonjour à tous,

je suis débutant sur Gdevelop et suis face à un problème, je m’explique.

Je suis sur la création d’un jeu de plateau tour par tour avec 7 pions dont un “Roi” de chaque coté et aimerais que mon Pion ( “le Roi”) ne puisse pas franchir une zone si un autre pion est sur sa trajectoire et qu’il stop à Pion - 1 ( position du pion)

J’ai pour cela créer un tableau de variables récupérant toutes les coordonnées de chaque pion et ai créer d’autre variables pour chaque pions en X et en Y ci dessous:

Ayant au préalable déclaré ces variables au début:

Malheureusement , j’ai beau me creuser la tête je ne parviens pas au résultat voulu.

Si quelqu’un as une solution ou une piste …
Un Grand merci d’avance.


#2

Ça a l’air bien compliqué, ton histoire.
Tu peux pas mettre un objet détecteur autour du roi à une case de distance, et avancer le roi tant que le détecteur ne touche pas de pion ? Ou utiliser le raycast pour connaitre la distance d’un éventuel pion, et soustraire une largeur de case ?
Tu ne montres pas comment tu fais les déplacements, alors c’est difficile de te guider.


#3

Merci Gruk pour ton retour,

en effet, peut être avec ces explications ce sera plus précis…
Le déplacement du roi se fait avec l’aide d’objets cachés (il est le seul à pouvoir aller dans toutes les directions) avec autant de positions possibles et une contrainte d’angle.
ci-dessous avec le roi bleu “RB” :

les pion eux ne peuvent qu’avancer en direction du camp adverse et d’une seule position à la fois et eux aussi avec une contrainte d’angle.
ci-dessous un pion bleu “PB1” :

Pour finir je met l’image du plateau avec les différentes possibilités :
Si Clic 1a ,1b ou 1c le RB se place à PB-1
Si Clic 1d le RB ne bouge pas.

L’idée c’est que le RB ne puisse pas franchir une zone si il y à un PB sur sa trajectoire…

voilà, j’espère avoir été plus clair.
merci et bonne journée


#4

OK, bah si le roi ne peut se déplacer que d’une ou deux cases, tu peux utiliser des détecteurs invisibles.
Par contre, s’il peut faire toute une diagonale d’un coup, ça va pas être génial, tu pourrais plutôt utiliser le raycast.
Imaginons que tu cliques sur 1a, ça envoie un rayon jusque-là pour vérifier la présence d’un pion bleu, ça te donne la distance en pixels de PBa, et tu déplaces le roi jusqu’à PBa moins une case.
Essaie et dis-nous si ça va.
Y a sûrement plusieurs méthodes qui conviendraient, aucune idée si c’est la meilleure.


#5

Merci Gruk ! après quelques nuits et variables, je suis enfin parvenu au résultat voulu.
Le raycast était, en effet, la meilleurs piste.:ok_hand: