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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.03.2012, 18:24
Alex_S вне форума Посмотреть профиль Отправить личное сообщение для Alex_S Найти все сообщения от Alex_S
  № 11  
Ответить с цитированием
Alex_S

Регистрация: Mar 2012
Сообщений: 2
Спасибо за примеры кода для определения столкновений, но подскажите, как описать поведение юнита после столкновения, т.е. чтобы он учитывал положение других юнитов, с которыми столкнулся, во время дальнейшего передвижения.
Наверное, тему не так надо было назвать.

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

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Возьмите уже физ. движок. Иначе это значит писать свой.
На геймдеве есть вполне статьи, которые описывают как физ. движок устроен, если что.
http://www.gamedev.ru/code/terms/?physics
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 22.03.2012, 22:34
ashIndie вне форума Посмотреть профиль Отправить личное сообщение для ashIndie Найти все сообщения от ashIndie
  № 13  
Ответить с цитированием
ashIndie

Регистрация: Feb 2012
Сообщений: 68
тоже возникла такая проблема и тоже частично ее решил. при сталкивании 2 юнитов, один из них останавливается и пропускает другого.когда они перестают сталкиваться продолжает движение, но если юнитов много естесственно появляются косяки.отложил эту проблему, а щас вот в этой теме смотрю поднялась. попробую тоже Point.

Добавлено через 1 минуту
-De-, а как физический движок решит проблему?....именно эту, на словах как вы себе этот алгоритм представляете?...щас разбираюсь с nape. в принципе и на нем можно было бы сделать, да и побыстрее он будет.

Старый 22.03.2012, 22:56
anmelegov вне форума Посмотреть профиль Отправить личное сообщение для anmelegov Найти все сообщения от anmelegov
  № 14  
Ответить с цитированием
anmelegov
[+4 07.04.12]
[+1 20.01.12]

Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
у тебя в поведении юнитов есть алгоритмы поиска пути, обхода препятсвий? обходи просто как препятсвие по кротчайшему пути, но с учетом взаимного перемещения

Старый 23.03.2012, 00:24
ashIndie вне форума Посмотреть профиль Отправить личное сообщение для ashIndie Найти все сообщения от ashIndie
  № 15  
Ответить с цитированием
ashIndie

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


Последний раз редактировалось udaaff; 23.03.2012 в 01:26. Причина: неадекватные знаки препинания
Старый 23.03.2012, 02:24
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 16  
Ответить с цитированием
-De-
 
Аватар для -De-

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

А* работает так: на каждом шаге ищем точку на уже пройденном пути к цели такую, чтобы если из этой точки получится по "прямой" (т.е. без препятствий) прийти к цели, то полученный путь будет минимальным. И из неё двигаемся по возможности по направлению к цели.
В случае динамических препятствий веселуха обеспечена)
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.


Последний раз редактировалось -De-; 23.03.2012 в 02:32.
Старый 23.03.2012, 10:47
ashIndie вне форума Посмотреть профиль Отправить личное сообщение для ashIndie Найти все сообщения от ashIndie
  № 17  
Ответить с цитированием
ashIndie

Регистрация: Feb 2012
Сообщений: 68
-De-, да я предполагаю что нагрузка будет серьезная, если будет юнитов 100.
по идее и щас у меня она большая, потому что каждый юнит думает и рассчитывает путь. Надо попробовать сделать на nape и сравнить производительность, хотя я и щас понимаю, что она увеличится.
Просто я как-то сразу не подумал использовать для игры с видом сверху физический движок, как то он у меня не ассоциировался с таким жанром.

Старый 23.03.2012, 11:40
stweet вне форума Посмотреть профиль Отправить личное сообщение для stweet Найти все сообщения от stweet
  № 18  
Ответить с цитированием
stweet
 
Аватар для stweet

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
Цитата:
Сообщение от ashIndie Посмотреть сообщение
-De-, да я предполагаю что нагрузка будет серьезная, если будет юнитов 100.
по идее и щас у меня она большая, потому что каждый юнит думает и рассчитывает путь. Надо попробовать сделать на nape и сравнить производительность, хотя я и щас понимаю, что она увеличится.
Просто я как-то сразу не подумал использовать для игры с видом сверху физический движок, как то он у меня не ассоциировался с таким жанром.
В таких случаях поступают малость иначе. Вам бы саму задачу реализовать, не важно(без разницы) быстро ли медленно будит работать решение. А вот когда реализуете оптимизировать будит проще уже готовое решение не же ли оптимизировать на ходу! Алгоритм А* не так уж и сложен в понимании и по отзывам это самый шустрый, им пользуются почти все игроделы сих жанров.

Самый оптимальный вариант работать с вложенной (2 3 n...)-х мерной сеткой, т.е. если 2 объекта находятся одновременно в одной зоне(на одной глубине) то включаем обработку глубже, в зависимости от глубины, где глубина это и есть ваши сетки. На последней сетке ячейки можно делать как раз размером с критической точкой столкновения.

Что про динамические объекты, тут то же не так сложно. Есть такое понятие "отклонение от траектории". Т.е. когда путь найден, но в пути (по мере достижения цели) попадаются объекты то целевую точку меняем на ту что безопасная от объекта и уже от неё высчитываем новый путь. Оптимизация в такой логике будит "сохранение путей".

Тут по сути даже саму сетку диких размеров делать не нужно, у вас же юнит не забегает за приделы экрана, а значит сетки хватит по размеру вьювера, просто её двигаем вместе с вьювером.

Есть ещё понятие дистанционной сетки т.е. юниты просчитывают свои сетки но в приделах некой дистанции, это что то похоже на то что описали выше с примером 2DBox.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!

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

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

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


 


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


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