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

Вернуться   Форум Flasher.ru > Обсуждение работ > Не сайты

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

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
По умолчанию Обнаружение столкновений

Вот сделал свой "хитТест". Клипы, которые на сцене рисуются в битмапу. Главный клип имеет определенное наложение (blendMode) вследствие чего можно установить имеется ли пересечение. Плюсы: можно сложные объекты проверять на столкновения - не надо якоря внутрь засовывать; быстродействие.
Имеются методы:
Collision.dinamicChecking (mc:MovieClip, arr:Array) - если объекты, с которыми планируется обнаружение столкновения будут перемещаться.
Collision.staticChecking (mc:MovieClip, arr:Array) - если объекты не будут перемещаться - экономит производительность.
mc - главный клип
arr - массив клипов-препятствий
Для остановки обнаружения столкновений есть метод:
Collision.stopChecking ();
Вложения
Тип файла: zip Collision.zip (37.5 Кб, 272 просмотров)

Старый 30.06.2008, 00:29
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 2  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Эх, ожидал увидеть большего Слова
Цитата:
быстродействие
Там нет в помине - только начинаю передвигать - фпс падает раза в 4.
К сожалению на зачет не тянет. Подходит только для единичного обнаружения столкновений, да и то - имхо математикой в 90% случаев будет гораздо быстрей.

Старый 30.06.2008, 20:44
VovkaMorkovka вне форума Посмотреть профиль Отправить личное сообщение для VovkaMorkovka Найти все сообщения от VovkaMorkovka
  № 3  
Ответить с цитированием
VovkaMorkovka

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

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

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Цитата:
Математикой столкновения будут гораздо быстрее, чем хиттестом
Здесь нет хиттеста - всего лишь две битмапы, в которые рисуются объекты. Поэтому если скажем будет 1 или 100 объектов - это не будет влиять на скорость. А математикой будет быстрее, если объектов немного.
Цитата:
только начинаю передвигать - фпс падает раза в 4.
Странно - на моем не самом современно компьютере бегает довольно шустро. Тем более странно, что фпс начинает падать при передвижении - расчет происходит постоянно - стоит ли на месте мувик или движется.

Старый 01.07.2008, 12:25
Яски вне форума Посмотреть профиль Отправить личное сообщение для Яски Найти все сообщения от Яски
  № 5  
Ответить с цитированием
Яски

блогер
Регистрация: May 2008
Адрес: (0, 10, 185) в локальной системе
Сообщений: 721
Записей в блоге: 6
Сделайте пример с кучей объектов, не думаю, что отрисовка будет быстрей математики.

Старый 01.07.2008, 16:59
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 6  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Мой метод позволяет найти пересечение, там где не поможет математика и hitTest (). Например, чтобы найти пересечение вот таких фигур обычным хиттестом, надо в какаю-нибудь одну засунуть множество якорей и для каждого искать столкновения. А если надо будет изменить форму этой фигуры? Про математику я вообще молчу.
Изображения
 


Последний раз редактировалось Волгоградец; 01.07.2008 в 17:03.
Старый 01.07.2008, 22:57
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 7  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Вот результаты работы класса.
Файл "0" - расчет не ведется.
Файл "100" - на сцене 1 клип, который можно перемещать мышью - ведется расчет на обнаружение столкновений со ста объектами.
Файл "1000" - на сцене 1 клип, который можно перемещать мышью - ведется расчет на обнаружение столкновений с тысячью объектами.
Как видно - посередине сцены движется клип - можно по нему отследить падение FPS. Скорость передвижения одинаковая во всех случаях.
На моем скромном компьютере (Athlon XP 2000+ 1,66 МГц) наблюдается небольшое падение производительности в третьем файле (где 1000 объектов).
Вложения
Тип файла: zip 0.zip (785 байт, 129 просмотров)
Тип файла: zip 100.zip (1.9 Кб, 156 просмотров)
Тип файла: zip 1000.zip (1.9 Кб, 179 просмотров)

Старый 02.07.2008, 00:26
Tfp вне форума Посмотреть профиль Отправить личное сообщение для Tfp Найти все сообщения от Tfp
  № 8  
Ответить с цитированием
Tfp
 
Аватар для Tfp

Регистрация: May 2008
Сообщений: 161
ппц...по сети гюляет уже давно абсолютно такой же по логике метод(рисование в битмапу с блендом дифференс) только реализованый куда быстрей(ну развечто только для статики там нету метода с копированием уже зарисованой битмапы)

Старый 04.07.2008, 11:38
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 9  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Цитата:
Сообщение от Tfp Посмотреть сообщение
ппц...по сети гюляет уже давно абсолютно такой же по логике метод(рисование в битмапу с блендом дифференс) только реализованый куда быстрей(ну развечто только для статики там нету метода с копированием уже зарисованой битмапы)
И? По твоей логике зачем вообще выкладывать сайты не проффесионалам, если професиональные фирмы уже давно сделали сайт лучше?
Волгоградец сделал этот скрипт и попросил оценить, указать баги и прочее, он совершенствуется. По твоей логике, зачем вообще жить, если кто то уже давно прожил, а?

To Волгоградец: кхм... 1000 обьектов, кое как открылось, но тормозов замеченно не было. я тут подумал.. чтобы убрать тормоза в твоем примере, попробуй:
1) проверять соприкосновение баундинг боксов - если их нету, смысла проверять тоже нету - 80% времени быстродействие возрастет в сотни раз
2) если и соприкосается, то нужно определить, с какой четвертью пересекается. То есть, если обьект выше и левее чем центр другого обьекта, то он полюбому если и пересекается, то именно с левой верхней четвертью. Если мне не изменяет память, чем меньше битмап, тем быстрее он будет работать.
3) Ну, уже непосредственно ищем пересечения твоим методом.

Лучше сразу четвертовать это изображение и хранить все неизменяемые переменные в памяти.
Preprocessing, (c) N authors


Последний раз редактировалось Psycho Tiger; 04.07.2008 в 11:44.
Создать новую тему Ответ Часовой пояс GMT +4, время: 13:55.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

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

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


 


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


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