Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Collusion Detection на ID3DXSprite [Delphi, D3D9]


ElectriC ©   (2007-09-15 19:16:00) 

Есть спрайт с прозрачностью(т.б. с альфа-каналом) в некоторых местах.
Как узнать, находится ли точка на прозрачной(альфа-канале) области спрайта?
P.S. Если такое возможно на ID3DXSprite.


ElectriC   (2007-09-19 15:08:00) [1]


> megabyte-Ceercop ©

Спасибо.
P.S. Правильно ли выводить GUI с помощью ID3DXSprite?


megabyte-Ceercop   (2007-09-19 11:58:00) [2]

Сделай окружность с ней проще всего, не придется учитывать поворот.
Я сам вообще использую прямоугольник без учета поворота спрайта.
по такой формуле
if ((Abs(Xobj - Xmouse) < Wobj/3) && (Abs(Yobj - Ymouse) < Hobj/3) )
then  коллизия есть.

Wobj, Hobj - ширина и высота объекта соотв.  Делиться должно на 2, если объект ровно прямоугольный, но если его края рваные и неправильные, то делим на 3, чтобы заузить тело колизии.


ElectriC   (2007-09-18 19:47:00) [3]

Просто я вывожу GUI с помощью ID3DXSprite (Кстати это нормально - т.б. быстро ли?).
P.S. Как проверить попадание точки в прямоугольник с округлыми краями?


PixelShader   (2007-09-18 15:12:00) [4]

Megabyte-ceercop
+1
Проверка через свой бэкбуффер может еще усложнится тем, что спрайт может быть повернут, смасштабирован, иметь покадровую анимацию и тд.

Потому если этот возможно, лучше использовать коллижн  окружностей\прямоугольников. Будет быстрее и проще в реализации.


Megabyte-ceercop   (2007-09-18 08:28:00) [5]

Действительно ли необходима такая коллизия? Если это для того чтобы мышкой перетаскивать объект, достаточно проверять попадание в окружность по центру объекта. Это даже удобнее в большинстве случаев.

Если нужна попиксельная коллизия, то придется делать вручную, через свой бэкбуфер альфы.


Наверх

Титульная страница Поиск, карта сайта Написать письмо