Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.11.20;
Скачать: CL | DM;

Вниз

Collusion Detection на ID3DXSprite   Найти похожие ветки 

 
ElectriC ©   (2007-09-15 19:16) [0]

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


 
Megabyte-ceercop ©   (2007-09-18 08:28) [1]

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

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


 
PixelShader ©   (2007-09-18 15:12) [2]

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

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


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

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


 
megabyte-Ceercop ©   (2007-09-19 11:58) [4]

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

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


 
ElectriC ©   (2007-09-19 15:08) [5]


> megabyte-Ceercop ©

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



Страницы: 1 вся ветка

Текущий архив: 2011.11.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
15-1311598347
fzt
2011-07-25 16:52
2011.11.20
Как писать плагин к Delphi? для чайников


15-1311453004
Юрий
2011-07-24 00:30
2011.11.20
С днем рождения ! 24 июля 2011 воскресенье


3-1266323284
Mike Kouzmine
2010-02-16 15:28
2011.11.20
Беда с двойной точностью


15-1311594517
oxffff
2011-07-25 15:48
2011.11.20
Progressive sessions или кефирные встречи


2-1311793235
Drowsy
2011-07-27 23:00
2011.11.20
При уничтожении модуля данных возникает AV.