Je crée un jeu de stratégie au tour par tour en 2 dimensions en utilisant c ++ et SFML-2.0. Le mouvement est basé sur la distance plutôt que sur la grille, avec plusieurs pièces différentes en forme de triangle qui, à un tour donné, chacune peut soit tourner en place, soit avancer.
Le mouvement fonctionnera de telle manière que le joueur sélectionne un emplacement vers lequel la pièce doit se déplacer, ce qui génère un chemin potentiel pour la pièce à prendre. Une fois que le joueur a confirmé sa décision, la pièce se déplacera le long de ce chemin jusqu'à l'emplacement souhaité. Les chemins sont limités par deux facteurs: la distance, jusqu'où une pièce peut aller, en tenant compte des virages (donc s'il y a une courbe, ce sera la longueur le long de la courbe, et non directement d'un point à un autre); et l'angle de braquage, jusqu'où la pièce peut pivoter à n'importe quel point (et jusqu'à chaque point) tout en se déplaçant (par exemple, de -30 à 30 degrés).
Ma question est la suivante: comment dois-je procéder pour déterminer la plage d'emplacements potentiels que le joueur peut sélectionner pour déplacer la pièce?
Je ne sais pas exactement quelles équations et / ou algorithme utiliser ici. Mon plan d'origine était extrêmement trop compliqué, au point qu'il était presque impossible à mettre en œuvre, encore moins à expliquer, et je suis à ce stade totalement perdu avec le projet au point mort.
Comment puis-je déterminer la portée qu'une unité peut déplacer, en tenant compte de son rayon de braquage?
Par exemple, dans l'image ci-dessous. Les lignes rouges, bleues et vertes auraient toutes la même longueur. Le cercle violet indique la plage de mouvement que l'unité peut déplacer. (La forme est probablement inexacte et les lignes ne sont probablement pas réellement de la même longueur, mais vous avez l'idée)