rel='stylesheet' href='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css'

суббота, 25 июня 2011 г.

Свершилось чудо

Добрый день! Всю неделю ломал голову как же все таки зделать поиск пути. И вот оно, свершилось чудо)



Волновой алгоритм.
.
Для начала реализовал волновой поиск пути, где "0" это елемент массива по которому волна идет во все четыре стороны, "-1" - елемент по которому волна неидет (стена так сказать или же пол). елемент "-2" - наш монстр, елемент "-3" наш ГГ. Реализовав поиск радовался как дите, это же мой первый поиск пути, это не хухры-мухры вам). Если б это был вид с верху то можно б было пихать в игру, а так у нас есть гравитация, что делать? Решил я добавить елемент "-4" по которому волна идет только вниз (так сказать гравитация), если под елементом "-4" есть пол "-1" или лесница/труба "0" - тогда волна расходится влево/вправо. После того как реализовали волну прокладываем путь где приоритет идет вверх-вниз-влево-вправо.

 И того в общей сложности что у нас получается? все поле у нас заполнено елементом "-4" - гравитация, кирпичи у нас "-1", лесницы и трубы - "0".

Ну и такой вот вид прототипа поиска пути
А вот небольшое видео с приминением этого алгоритма
 

Ну на даный момент пока все.

4 комментария:

  1. Молодец, работаешь! Я пока застопорился на физике.

    Очень надеюсь, что на конкурс придет хотя бы 3-4 работы :)

    ОтветитьУдалить
  2. Пока локация мала и обрабатываемых объектов мало, такой подход сойдет.
    Я как-то эксперемнтировал на карте 1024х1024 : делал поиск пути по A* с тупым использованием
    NavigationMesh. Результат не очень=)
    perfect daemon, не парься, работ 5 может придет=))

    ОтветитьУдалить
  3. Раз в конкурс не попала работа, то можно работу "пощупать"?

    ОтветитьУдалить