Игра с физикой: hitTest 2х сложных объектов
-------------------для ленивых-------------------
Цель: найти Х.У точки пересечений тела с картой, где оба объекта hittest-а сложной и неправильной формы. Про hitTest я читал и смотрел много разных примеров. Пока не нашел решения, все ещё продолжаю искать... --------------------------------------------------- -Всё бы хорошо, если вместо моего тела - был бы простой шарик, или карту можно было бы представить как набор правильных сегментов(форм) разложенных по сетке. -Да и задачу осложняет физика игры, с большим кол-ом ускорений как линейных(по Х,У), так и угловых(вращений). На ум приходит только один способ: Утыкать все выступающие элементы тела точками и проверять уже их столкновение с картой поотдельности(элементарным хиттестом точки с заливкой карты), но тут то и возникает основная проблема. Сколько бы ни было точек на поверхности тела, возможно столкновение с очень острым и сильно выступающим фрагментом карты, где подобное событие не будет зафиксировано, либо станет причиной совершенно не правильной реакции на него. Но даже если закрыть глаза на небольшую вероятность подобной проблемы, сам способ достаточно сложный для программирования и для вычисления на слабых машинах. Существует ли вообще другие способы нахождения столкновения сложных объектов? Был бы очень признателен за любую помощь. |
Цитата:
|
Есть два способа:
1. Легкий способ. Скачать готовый хитТест для абсолютно любых форм. Качаем 2. Трудный способ. Воспользоваться алгеброй/геометрией. Учимся проверять столкновения двух линий и проверяем каждую линию одного объекта на столкновение с линией другого объекта Во втором случае идет выйгрышь в производительности |
Ммм... Перебирать все пиксели меньшего объекта на совпадение их с большим в цикле... Я бы не додумался никогда. Не привык решать задачи программирования в лоб. Всё думал, как связать хитТест(точка-заливка) с алгебраич и геометрическими формулами - от чего у меня болит голова уже третий день.
ZIK68 спасибки! Щас покрутил этот "готовый хитТест" со своими фигурами... От функции с интервалом 10мс проходящей в цыкле ~1500пиксей я думал мой проц вкипит и испарится, ан нет. На AMD x2 6000+ процесс флеш-плеера занимал 15-20%. И уверен что прыгать с оптимизацией производительности этой функции-цикла можно долго... |
Пример не смотрел.. Но может быть сделать границу меньшего объекта отдельным мувиком, и перебирать при проверке hitTest только его пиксели, то есть пиксели границы?
|
Цитата:
|
Ясно. В пределах трех месяцев назад была тема о том же, что и у вас. Поищите...
Если я верно помню, там речь шла о расчете хиттеста по сложной границе объекта, использовались пиксельные функции, кажется. |
Цитата:
А представьте вам надо мноого объектов проверять и у конечного пользователя будет слабее комп |
|
может быть, для кого-то это ещё новость..
http://www.freeactionscript.com/2009...ion-detection/ |
Часовой пояс GMT +4, время: 18:15. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.