Ich erstelle ein zweidimensionales, rundenbasiertes Strategiespiel mit C ++ und SFML-2.0. Die Bewegung ist eher entfernungsbasiert als gitterbasiert, mit mehreren unterschiedlichen dreieckigen Teilen, die sich in einer bestimmten Umdrehung entweder an Ort und Stelle drehen oder vorwärts bewegen können.
Die Bewegung funktioniert so, dass der Spieler einen Ort auswählt, an den sich das Stück bewegen soll, wodurch ein potenzieller Pfad für das Stück generiert wird. Sobald der Spieler seine Entscheidung bestätigt hat, bewegt sich das Stück auf diesem Weg zum gewünschten Ort. Die Wege sind durch zwei Faktoren begrenzt: Entfernung, wie weit ein Stück gehen kann, unter Berücksichtigung von Kurven (wenn es also eine Kurve gibt, ist dies die Länge entlang der Kurve und nicht direkt von Punkt zu Punkt); und Lenkwinkel, wie weit sich das Teil an einem beliebigen (und bis zu jedem) Punkt drehen kann, während es sich bewegt (z. B. von -30 bis 30 Grad).
Meine Frage ist, wie ich vorgehen soll, um den Bereich potenzieller Orte zu bestimmen, an die der Spieler das Stück bewegen kann.
Ich bin mir nicht ganz sicher, welche Gleichungen und / oder Algorithmen ich hier verwenden soll. Mein ursprünglicher Plan war extrem überkompliziert, bis zu einem Punkt, an dem es nahezu unmöglich war, ihn umzusetzen, geschweige denn zu erklären, und ich bin an diesem Punkt völlig verloren, als das Projekt ins Stocken geriet.
Wie kann ich die Reichweite einer Einheit unter Berücksichtigung ihres Wenderadius bestimmen?
Zum Beispiel im folgenden Bild. Die roten, blauen und grünen Linien wären alle gleich lang. Der violette Kreis kennzeichnet den Bewegungsbereich, den das Gerät bewegen kann. (Die Form ist wahrscheinlich ungenau und die Linien sind wahrscheinlich nicht wirklich die gleiche Länge, aber Sie erhalten die Idee)