Tworzę dwuwymiarową, turową grę strategiczną z wykorzystaniem c ++ i SFML-2.0. Ruch jest oparty raczej na odległości niż na siatce, z kilkoma różnymi trójkątnymi elementami, które w danym ruchu mogą się obracać w miejscu lub poruszać się do przodu.
Ruch będzie działał w taki sposób, że gracz wybierze miejsce, do którego element ma się przenieść, co generuje potencjalną ścieżkę do przejścia. Gdy gracz potwierdzi swoją decyzję, pionek przemieści się tą ścieżką do wybranej lokalizacji. Ścieżki są ograniczone przez dwa czynniki: odległość, jak daleko kawałek może się posunąć, biorąc pod uwagę wszelkie zakręty (więc jeśli istnieje krzywa, będzie to długość wzdłuż krzywej, a nie bezpośrednio od punktu do punktu); oraz kąt skrętu, jak daleko element może się obracać w dowolnym (i do każdego) punkcie podczas ruchu (na przykład od -30 do 30 stopni).
Moje pytanie brzmi: jak powinienem zająć się określeniem zakresu potencjalnych lokalizacji, w których gracz może wybrać, aby przesunąć kawałek?
Nie jestem do końca pewien, jakich równań i / lub algorytmu użyć tutaj. Mój pierwotny plan był niezwykle skomplikowany do tego stopnia, że jego realizacja była prawie niemożliwa, nie mówiąc już o wyjaśnieniach, i jestem w tym momencie całkowicie zagubiony, gdy projekt utknął w martwym punkcie.
Jak mogę określić zasięg, który jednostka może przesunąć, biorąc pod uwagę jej promień skrętu?
Na przykład na poniższym obrazku. Czerwone, niebieskie i zielone linie miałyby taką samą długość. Fioletowy okrąg oznacza zakres ruchu, który jednostka może przesunąć. (Kształt jest prawdopodobnie niedokładna i linie prawdopodobnie nie są faktycznie tej samej długości, ale masz pomysł)