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

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

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

Регистрация: Feb 2012
Сообщений: 68
Question Как сделать чтобы юниты при столкновении обходили друг друга?

Здравствуйте, жители форума!
Интересует собственно сабж.
Игра с видом сверху. Юниты умеют обходить препятствия, идти к точке, обнаружать столкновения друг с другом, но рационального и правильно рабочего метода для того чтобы они не входили друг в друга я так и не смог пока сделать. Юниты не управляются пользователем вобще никак. полностью ИИ. Они лишь идут всегда к герою чтобы его убить.
Какие есть идеи?...

Старый 11.03.2012, 17:07
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 2  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Есть идея, чтоб юниты всё-таки проходили друг сквозь друга. Так часто делают, именно потому что куча мороки сделать таки непроходимые юниты.
Как вариант можно, чтоб при столкновении каждый обходил справа, но, повторюсь, обычно решение достаточно замороченное.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 11.03.2012, 17:10
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 3  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Цитата:
Юниты умеют обходить препятствия,
По каком алгоритму?
Используйте A* и ставьте, на каждой итерации просчета пути, других юнитов не проходимыми (высокую стоимость).
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

Старый 11.03.2012, 17:21
Deimos747 вне форума Посмотреть профиль Отправить личное сообщение для Deimos747 Найти все сообщения от Deimos747
  № 4  
Ответить с цитированием
Deimos747
 
Аватар для Deimos747

Регистрация: Mar 2011
Сообщений: 243
Цитата:
Используйте A* и ставьте, на каждой итерации просчета пути, других юнитов не проходимыми (высокую стоимость).
Учитывая, что юниты перемещаются, то лучше такой вариант:
1) Строить путь для текущего состояния, как сказал Genzo
2) На каждом шаге юнита проверять: клетка куда он хочет шагнуть свободна, если да то идём, иначе строим новый путь

Старый 11.03.2012, 17:21
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 5  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,250
Записей в блоге: 6
ashIndie
Пусть тупо расталкиваются. Самое простое решение. Вариантов реализаций множество.
__________________
Дети не должны знать о своих родителях

Старый 11.03.2012, 17:28
ObOs вне форума Посмотреть профиль Отправить личное сообщение для ObOs Найти все сообщения от ObOs
  № 6  
Ответить с цитированием
ObOs
 
Аватар для ObOs

Регистрация: Jul 2009
Сообщений: 149
Посмотрите тут . Только там на AS2, переделать на AS3 думаю будет не трудно

Старый 11.03.2012, 18:03
ashIndie вне форума Посмотреть профиль Отправить личное сообщение для ashIndie Найти все сообщения от ashIndie
  № 7  
Ответить с цитированием
ashIndie

Регистрация: Feb 2012
Сообщений: 68
ObOs, там они просто тупо входят друг в друга.
Genzo, нет алгоритм поиска пути у меня как в ссылке представленной ObOs, с xitri.com
Щас я сделал некий замороченный вариант. При столкновении один юнит(назовем его Вася) останавливается, другой проходит(Петей будет), как только место освобождается Вася продолжает движение, но если они с Петей идут в одном направлении то получается что он постоянно останавливается, да и это корректно работает при малом числе юнитов, а если их множество, то все же получается что входят друг в друга некоторые.

Вопрос:
Вообще целесообразно ли реализовывать данную функцию, учитывая, что это шутер с видом сверху, карта не перемещается, тоесть игрок видит сразу весь уровень, соответственно учитывая препятствия там не так много места получается для того чтоб толпились юниты и обходили друг друга. Если их будет много - образуется пробка))), а если мало то может и не очень это будет резать глаза?....
Решать конечно конечным пользователям....но те кому показывал обратили на это внимание. Поэтому все еще хочу реализовать этот алгоритм.

Или стоит ли все переделывать чтобы реализовать алгоритм А*? Какие аргументы за?
Спасибо всем, кто отвечает в этой теме.

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

Теги
вид сверху , игры , ИИ
Опции темы
Опции просмотра

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

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


 


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


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