Я возился с написанием действительно плохой тактической RPG на C ++. Пока у меня есть 2D-карта тайлов, и я только что получил алгоритм A *, основанный на псевдокоде в википедии .
Но настоящие тактические РПГ не просто находят лучший путь на плоской плоскости и двигаются туда. Они обычно имеют ограниченные диапазоны перемещения и должны подниматься или опускаться. Если вы когда-либо играли в Final Fantasy Tactics, на них повлияла бы статистика Move и Jump. Это где я заблудился. Как я могу изменить алгоритм A *, чтобы он нашел лучший путь к цели, но этот путь занимает только столько плиток? Как я должен принимать во внимание разницу в высоте и прыгать статистику? Как мне реализовать перепрыгивание через пробел?
Если это поможет, сейчас моя карта представлена объектами Vector of Tile. Каждая плитка имеет указатели на плитку «Север», «Юг», «Восток» и «Запад», которые устанавливаются в nullptr, если там нет плитки, например, вдоль края карты или если мозаика установлена в непроходимую.