Алгоритм поиска пути к точке - PullRequest
1 голос
/ 05 декабря 2009

Я не уверен, правильно ли я сформулировал это, но в основном у меня есть объект в точке X, Y, и я хочу алгоритм, который может перевести эту точку в X ', Y', но хотел бы показать его маршрут, чтобы я мог анимировать Это. Я строю игру с плитками, и когда игра начинается, я хочу, чтобы плитки волшебным образом помещались в красивый 2d массив. Поэтому я сгенерирую случайную координату, а затем скажу ей, чтобы она достигла своей цели в течение 50 кадров. Спасибо

Ответы [ 3 ]

4 голосов
/ 05 декабря 2009

Звучит так, будто вы просто хотите линейного преобразования. Как

Xt = (((X'-X)/T)*t)+X, Yt = (((Y'-Y)/T)*t)+Y

Или на английском языке координата для плитки в момент времени t равна длине t / total_frames вдоль ее пути. A * является излишним, если вы не пытаетесь избежать препятствий.

0 голосов
/ 05 декабря 2009

Таким образом, вы хотите линейно интерполировать от (X, Y) до (X ', Y') за 50 шагов. Сначала определите общее расстояние для перемещения в каждом направлении:

dx = X' - X
dy = Y' - Y

при условии, что n = 50 кадров, в i-ом кадре (то есть с i в диапазоне [0, n-1]) поместите плитку с координатой (x, y), определенной как:

x = X + dx * (i / (n-1))
y = Y + dy * (i / (n-1))
0 голосов
/ 05 декабря 2009

Вы захотите использовать алгоритм A-star. Смотри здесь

...