Главная страница
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.47 MB
Время: 0.011 c
10-1175837272
Лу
2007-04-06 09:27
2011.11.20
DHTMLEdit.DOM.ExecScript - Отказано в доступе. ( D7 XP )


1-1273589288
guest
2010-05-11 18:48
2011.11.20
Закорючки в Excel


15-1311773579
xayam
2011-07-27 17:32
2011.11.20
C++ => Object Pascal


15-1311249647
Scott Storch
2011-07-21 16:00
2011.11.20
запрос на удаление


2-1311708454
Lamer6666
2011-07-26 23:27
2011.11.20
Правильно ли работаю с потоками?