Форум: "Игры";
Текущий архив: 2011.11.20;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.003 c