|
Библиотеки Сторонние библиотеки для Blitz |
28.06.2007, 04:38
|
#1
|
|
Wave.dll - Волновой алгоритм поиска пути.
Вобсчем написал волновичокк....просьба потэстить на работоспособность. Версия библиотеки пока еще очень сырая....так что особо не ругать.....Также принимаюцца предложения по улучшению данной библиотеки.
В аттаче :
- DLL.
- DECLS.
- Руководство пользователя на русском.
- Пример использования.
Качать здесь (30 кб - Версия 0.3 ) :
http://ffa.ucoz.ru/Wave_beta.rar
|
|
|
28.06.2007, 10:36
|
#2
|
Оператор ЭВМ
Регистрация: 29.05.2007
Сообщений: 46
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Wave.dll - Волновой алгоритм поиска пути.
Было бы клево, ОЧЕНЬ клево:
Wave_SetPersPos(id%, x%, y%) - cделать такое же для Wall. Вдруг у меня там дверь или какой-либо перемещающийся обьект?!
Далее... ввести 3-ю координату Z (для 3-д приложений).
ВВести размеры X-YMap более 127 (например 500-600)
Все! И цены тебе бы небыло!!!
|
(Offline)
|
|
28.06.2007, 11:51
|
#3
|
|
Re: Wave.dll - Волновой алгоритм поиска пути.
Xander
если при таких условиях оно еще не будет тормозить
то тогда действительно цены бы ему небыло
|
|
|
28.06.2007, 12:12
|
#4
|
Оператор ЭВМ
Регистрация: 29.05.2007
Сообщений: 46
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Wave.dll - Волновой алгоритм поиска пути.
2 jimon: Главное чтобы эти параметры были. Тормоза будут покрыты тем что будет 3 координаты и больший размер карты. (кто не захочет тот не будет юзать!)
|
(Offline)
|
|
28.06.2007, 21:05
|
#5
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Wave.dll - Волновой алгоритм поиска пути.
600*600*600 = =-O
|
(Offline)
|
|
28.06.2007, 21:43
|
#6
|
|
Re: Wave.dll - Волновой алгоритм поиска пути.
HolyDel
угу, волновой алгоритм не предзначен для такого
для такого вообще ничего из "простых алгоритмов" не предназначено
|
|
|
29.06.2007, 01:24
|
#7
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Wave.dll - Волновой алгоритм поиска пути.
начнем хотябы с массива под ету хрень.
допустим 32битный 3х мерный массив. по 600 в каждом измерении. скока он займет памяти?
правильно: 600*600*600*4 = 823,974609375 метра. Не, мне конечно не жалко, но ето тока цветочки. Настоящее начинается при вычислении пути, предположим из одного угла в другой.
|
(Offline)
|
|
29.06.2007, 01:42
|
#8
|
Модератор
Регистрация: 20.06.2006
Сообщений: 363
Написано 24 полезных сообщений (для 44 пользователей)
|
Re: Wave.dll - Волновой алгоритм поиска пути.
Помню в универе на 4 курси по системам Искуственого Интелекта мы писали игру типа танчики каторые искали путь в лаберинте, так вот я использовал волновой алгоритм поиска пути. лаберинт был не больно 20 на 20 вроде так он оказался тормозной... вот тут алгоритм А* там в тексте есть линк на примеры и либы на Blitz написаные http://www.policyalmanac.org/games/a...torial_rus.htm
|
(Offline)
|
|
29.06.2007, 03:23
|
#9
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Re: Wave.dll - Волновой алгоритм поиска пути.
Интересно, а как вы его запустили? У меня error!
|
(Offline)
|
|
29.06.2007, 03:48
|
#10
|
|
Re: Wave.dll - Волновой алгоритм поиска пути.
to Xander.
1)А в чем проблемма? если тебе нужно переместить Ящик на поле - очищай ячейку откуда ящик передвигается (Wave_DeleteWall) и вставляй стену в ячейку куда ящик должен передвинуться (Wave_AddWall), предварительно проверив не стоит ли в этой ячейке кто (Wave_CheckNodePers).
А команда о которой ты сказал, у нее смысл гораздо глубже чем ты думаешь - она не тока меняет значения в основном массиве....тама еще паралельно производятся изменения в массиве "Персов".
2) =O-0
А как ты себе это представляешь? Путь вседга ищется в 2Д.....третья ось тока схавает лишних ресурсов....и легче от этого не станет.
3) Даже максимум - 127 для волновичка это уже много. Ты погоди, доделаю эту либу - возьмусь за АСтар! Вот тама будет где разгуляться фантазии! Хоть тыщу ставь!
To WaReZ_MEN - значит у тебя волновичок реализован криво.... у меня на функцию Wave_FindPathFast() - ушло 59 строк кода...... и тесты показали что на поле 100*100 время на поиск пути уходит от 9 до 12 миллисекунд....это если старт находиться в одном углу, а финиш - в другом. если растояние до финиша меньше там уже просчет этой команды - не чувствуется (от 0 до 5 мс).
|
|
|
29.06.2007, 10:30
|
#11
|
Оператор ЭВМ
Регистрация: 29.05.2007
Сообщений: 46
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Wave.dll - Волновой алгоритм поиска пути.
2 Diablo1909:
Ок, по первому пункту ты прав!
Насчет размера есть вопрос-предложение. Возможно ли сделать чтобы задавалось большее поле, но я мог устанавливать поиск пути в определенные пределы. Тоесть например поле у меня размера 600х600, а указано искать в педелах 125, от начала точки поиска до конца.
Также встречный вопрос - как в 3Д искать путь с помощью твоей библы? например на терайне мне надо найти точку... Координата Y-высота... Z - глубина. X-длинна. Вроде правильно написал.
|
(Offline)
|
|
29.06.2007, 11:01
|
#12
|
|
Re: Wave.dll - Волновой алгоритм поиска пути.
To Xander
- Так это можно реализовать самому. Сначала вытаскиваешь координаты перса командами Wave_GetStepNodeX( id, чтобы получить Х перса - здесь обязательно ставь 0 !!! ) также и с Y. Затем вычисляй dis=sqr(x1-x2)^2-sqr(y1-y2)^2 - где x2 и y2 - это точка назначения. dis = это и будет расстояние до нужной тебе точки. Если она меньше некоего предела то ищи путь, если больше - уменьш x2 и y2. Волновой алгоритм не будет просчитывать все поле, он сам остановится если найдет целевую точку. В принципе можно поставить и побольше, максимум поставлю X\Y=1000.
В 3Д ищется путь также как и в 2Д. А насчет высоты гор и стен и так далее - то это уже забота программистов и гейм-дизайнеров. =)))
Ок. Седня вечером будет большой апдэйт. =)))
|
|
|
29.06.2007, 14:39
|
#13
|
Оператор ЭВМ
Регистрация: 29.05.2007
Сообщений: 46
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Wave.dll - Волновой алгоритм поиска пути.
Люди обьясните плиз, как найти 3Д путь с помощью двух координат х и у? С помощью этой библы.
|
(Offline)
|
|
30.06.2007, 16:42
|
#14
|
|
Re: Wave.dll - Волновой алгоритм поиска пути.
|
|
|
04.07.2007, 13:15
|
#15
|
Оператор ЭВМ
Регистрация: 29.05.2007
Сообщений: 46
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Wave.dll - Волновой алгоритм поиска пути.
Сообщение от Diablo1909
Седня вечером будет большой апдэйт. =)))
|
м-м-м-м...
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:04.
|