PDA

Просмотр полной версии : Поиск объекта и прокладка пути к нему


n06rin
05.01.2012, 12:10
npc-персонаж должен искать вокруг себя объекты (скажем золото). Все это находится на двухмерной матрице. Как сделать алгоритм поиска? Готовое решение не требуется, просто я не могу понять как это сделать.

dark256
05.01.2012, 15:06
Перебирает массив со списком объектов, рассчитывает дальности по координатам себя и обьекта и тащит ближайший. имхо.

Прокладка пути - гуглим и читаем про A* или A-Star.

Sergey_A
06.01.2012, 12:09
Посмотрите статью http://xitri.com/2008/09/22/simple-engine-flash-game-top-view.html - там алгоритм движения объекта. Там он дивжется за курсором, у вас будет - за золотом.

n06rin
07.01.2012, 15:32
Спасибо за хорошую статью, но дело в том что персонаж должен не только дойти до золота, но также должен и найти ближайшее к нему. Как вот это сделать?

Tails
07.01.2012, 16:02
n06rin
Алгоритм поиска пути вам нужен, их множество. Я когда то юзал алгоритм метода волн. Нашел описание в инете и переписал на ас.

n06rin
07.01.2012, 16:56
так ему же надо идти к чему-то. Дело в том что ячеек золота может быть много, и ему надо найти ближний к нему. Как это сделать?

mooncar
07.01.2012, 17:25
n06rin, если нет препятствий, последовательно рассчитать дальности до нескольких точек и выбрать наименьшую. dark256 об этом говорил.
Если есть препятствия - включаем алгоритм поиска минимального пути, просто узнаем - какой путь будет оптимальный. Выбрав путь, отправляем героя.

Точнее, так - находим точку "золото", путь до которой будет минимальным.
Как это сделать - это ваш контекст. Либо, если есть препятствия, то есть если путь - не одна прямая, то А-star использовать (Вот уже есть реализация (http://www.flasher.ru/forum/showpost.php?p=759234&postcount=12)) или другой алгоритм. Либо, если нет препятствий, теорему Пифагора.
После этого отправляем персонажа.

Tails
07.01.2012, 17:31
Собсна вот та тема, где я тоже когда-то спрашивал про поиск пути:
http://www.flasher.ru/forum/showthread.php?t=122115

А вот это я нашол сейчас в гугле:
http://tsutmb.ru/imfi/parca/src/dubovitskui_2010_15_6.pdf

Удачи.