Мир программирования

 


Найти: на:


Меню
Партнеры
Счетчики
Реклама

Direct Draw по русски
К вопросу о прозрачности


Если у Вас все получилось, то вы наверное заметили, что наш якобы спрайт - не совсем правильно себя ведет. То есть отображается в виде квадрата. Как Вы наверное знаете вся суть спрайта заключается в прозрачности. Так называемом Альфа канале, или цвете. То есть из спрайта выделяется некоторый цвет, который пи отображении не рисуется, чем и создается эта самая прозрачность. Мы выберем в качестве прозрачного цвета - черный. Для определения прозрачного цвета существует тип записи PDDColorKey, который имеет в своей структуре две переменные, хранящие значения верхнего и нижнего индексов прозрачного цвета. dwColorSpaceLowValue

и dwColorSpaceHighValue соответственно. Записав в них нужные числа, мы исключим определенный цвет. Давайте Посмотрим, как будет выглядеть процедура RedrawScreen.

Сначала Определим переменную прозрачности.

var

. . . .

Alpha : PDDColorKey;

. . . .

begin

. . . .

// Определение цвета прозрачности пишется перед зацикливанием всего приложения.

Alpha.dwColorSpaceLowValue:=0;

Alpha.dwColorSpaceHighValue:=0;

SpriteSurface.SetColorKey(DDCKey_SRCBLT ,Alpha);

. . .

end.

Теперь поменяем флаг функции BltFast копирующей спрайтовое изображение.

было

DDResult:=SecondarySurface.BltFast(288,208,SpriteSurface,rect,DDBLTFAST_NOCOLORKEY+DDBLTFAST_WAIT);

стало

DDResult:=SecondarySurface.BltFast(288,208,SpriteSurface,rect,DDBLTFAST_SRCCOLORKEY +DDBLTFAST_WAIT);

Ну вот, кажется и все пока. :-)

Опрос

Конкурсы
Реклама

 

Web дизайн: Бурлаков Михаил    

Web программирование: Бурлаков Михаил

Используются технологии uCoz