Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.04.2011, 22:13
forhaxed вне форума Посмотреть профиль Отправить личное сообщение для forhaxed Найти все сообщения от forhaxed
  № 1  
Ответить с цитированием
forhaxed

Регистрация: Jun 2009
Сообщений: 35
Cool Экономный алгоритм поиска пути.

Пытаюсь написать свой игровой AI для Top-down шутера.
Есть задача, поиск пути из точки А в точку B.
Совсем чуть-чуть погуглив, остановился на алгоритме Дейкстры.

Т.е. берем все коллизии (в моем случае это обычные Rectangle)

И от каждого угла, отступаем 16 пикселей. Заносим их в вертексы (вейпоинты). После чего делаем trace-line из каждой точки ко всем точкам, если на пути нет коллизий - соединяем вейпоинты.

Все бы ничего, но поиск пути, в данном случае составляет около 151ms, что для реалтайма не есть круто.

Как вариант допускается использование как A* алгоритмов, так и потенциальных шагов*. Необходимо обеспечить выполнение функции не более 3-5 ms.

Что посоветуете?

* Потенциальные шаги, в моем понимании, поиск пути на ходу. Т.е. он может его искать, даже если такого пути не существует.

Старый 04.04.2011, 01:56
semenyakinVS вне форума Посмотреть профиль Отправить личное сообщение для semenyakinVS Найти все сообщения от semenyakinVS
  № 2  
Ответить с цитированием
semenyakinVS

Регистрация: Mar 2010
Сообщений: 137
Используй А*.

http://en.wikipedia.org/wiki/A*_search_algorithm

Там есть эвристика - она быстрая! Используй ту, которая диагонально-прямая, не помню как она называется - самая хорошая.

А чтобы всё было ещё быстрее - попробуй использовать порталы в помещения. Т. е., если есть дверь, можно улучшить поиск кэшируя прошлые результаты.

Старый 04.04.2011, 13:31
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 3  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
http://habrahabr.ru/blogs/algorithm/115689/#habracut правда для 6-угольников.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 05.04.2011, 10:28
Warlockus вне форума Посмотреть профиль Отправить личное сообщение для Warlockus Найти все сообщения от Warlockus
  № 4  
Ответить с цитированием
Warlockus

Регистрация: Jun 2009
Сообщений: 6
Используй A* с оптимизацией по Binary Heap и кешированием путей.

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:01.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
pathfinding , Дейкстра , поиск пути

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:01.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.