Я створюю двовимірну покрокову стратегічну гру, використовуючи c ++ та SFML-2.0. Рух є на відстані, а не на сітці, з кількома різними фігурами у формі трикутника, які за певний поворот можуть або обертатися на місці, або рухатися вперед.
Рух працюватиме таким чином, що гравець вибирає місце, куди рухається твір, що генерує потенційний шлях для того, щоб твір пройшов. Після того, як гравець підтвердить своє рішення, твір переміститься по цьому шляху до потрібного місця. Шляхи обмежені двома факторами: відстань, наскільки далеко може вийти шматок, враховуючи будь-які повороти (тому якщо крива є, це буде довжина вздовж кривої, а не безпосередньо від точки до точки); і кут нахилу керма, наскільки далеко шматок може обертатися в будь-якій (і до кожної) точці під час руху (наприклад, від -30 до 30 градусів).
Моє запитання: як мені взяти участь у визначенні діапазону потенційних локацій, який гравець може вибрати, щоб рухати твір?
Я не зовсім впевнений, які рівняння та / або алгоритм тут використовувати. Первісний мій план був надзвичайно складним, до того моменту, коли його практично неможливо було здійснити, не кажучи вже про пояснення, і я в цей момент повністю загубився, коли проект зупинився.
Як я можу визначити діапазон, яким може рухатися одиниця, враховуючи його радіус повороту?
Наприклад, на зображенні нижче. Червоні, сині та зелені лінії були б однакової довжини. Фіолетовий круг позначає діапазон руху, по якому може рухатися одиниця. (Форма, ймовірно, неточна, і лінії, ймовірно, насправді не однакової довжини, але ви розумієте)