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:
Ç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.
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” :
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.