Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > спрайты


Автор: Serzh 3.2.2004, 22:06
народ! подскажите!!!
имееться БМПехи в ресурсах.
необходимо их прорисовывать.
я это делаю с помощью MaskBlt
но проблема в том, что он вроде как в 98 и 95 не потянет, по этому нужно пользовать BitBlt
вот тут я попал в тупик - как в нем сделать фон прозрачный?

Автор: oleg1973 6.2.2004, 02:11
по маске можно ручками
или если BitBlt может установить прозрачность одного цвета, черного к примеру

Автор: Nastya 6.2.2004, 10:33
TransporentBlt - может не показывать 1 цвет делать его прозрачным. Только в проект нужно lib какой-то подключить. В МЗДН написано какой.
AlphaBlend - Настройка "прозрачности" всего рисунка.

Автор: oleg1973 6.2.2004, 21:24
а если спрайтик уж больно цветастенький?smile.gif

Автор: Serzh 9.2.2004, 02:39
Цитата(oleg1973 @ 6.2.2004, 02:11)
по маске можно ручками
или если BitBlt может установить прозрачность одного цвета, черного к примеру

не, маска мне не нужна. достаточно сделать один цвет прозрачным.
если не сложно, можно примерчик, а то я с ропом эксперементировал и не чего не получилось?

Nastya, про TransporentBlt ничего не нашел, но и судя по AlphaBlend он мне не понадобиться. не очень хочу ее мусором набивать (прогу всмысле).

зарание всем спасибо! smile.gif

Автор: Nastya 9.2.2004, 20:39
Искюз
TransparentBlt -

The TransparentBlt function performs a bit-block transfer of the color data corresponding to a rectangle of pixels from the specified source device context into a destination device context.

BOOL TransparentBlt(
HDC hdcDest, // handle to destination DC
int nXOriginDest, // x-coord of destination upper-left corner
int nYOriginDest, // y-coord of destination upper-left corner
int nWidthDest, // width of destination rectangle
int hHeightDest, // height of destination rectangle
HDC hdcSrc, // handle to source DC
int nXOriginSrc, // x-coord of source upper-left corner
int nYOriginSrc, // y-coord of source upper-left corner
int nWidthSrc, // width of source rectangle
int nHeightSrc, // height of source rectangle
UINT crTransparent // color to make transparent
);


Requirements
Windows NT/2000: Requires Windows 2000.
Windows 95/98: Requires Windows 98.
Header: Declared in Wingdi.h; include Windows.h.
Library: Included as a resource in Msimg32.dll.



Автор: Serzh 9.2.2004, 22:20
ой! наверное я тормоз.... sad.gif
спасибо, Настя, но немогу я ее(TransparentBlt) прикрутить...
мона примерчик? smile.gif

Автор: Nastya 10.2.2004, 19:05
Все делаешь так как в StretchBlt, только последним параметром даешь COLORREF. цвета котрый не надо выводить.
И еще надо подключить Msimg32.lib
В МС++6.0
Project->Setting->Link-> и там в список добавляшь Msimg32.lib

Автор: Serzh 10.2.2004, 20:45
Nastya, ай лав ю!!! smile.gif
спасибо в общем!!! smile.gif

Автор: Serzh 14.2.2004, 21:24
Nastya, а как мне AlphaBlend запользовать?

Автор: Nastya 16.2.2004, 20:29
Точно так, только последним параметром идет указатель на структуру типа BLENDFUNCTION. какие поля там не помню (одно там точно задает степень прозрачности от 0 до 255 ) smile.gif но ты их заполняешь. И передаешь в функцию

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)