vc++游戲編程----游戲畫面特效制作1

vc++游戲編程----游戲畫面特效制作1

ID:14172988

大?。?07.50 KB

頁數(shù):4頁

時間:2018-07-26

vc++游戲編程----游戲畫面特效制作1_第1頁
vc++游戲編程----游戲畫面特效制作1_第2頁
vc++游戲編程----游戲畫面特效制作1_第3頁
vc++游戲編程----游戲畫面特效制作1_第4頁
資源描述:

《vc++游戲編程----游戲畫面特效制作1》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、有時候,我們需要在畫面上顯示一張角色的圖像,而這張圖片是有自己的背景的,要是直接貼到了游戲的畫面中,就會出項覆蓋游戲畫面。顯示出的效果特別不好,這里我們可以用到透明效果來處理。其中,原理就是用BitBlt()的Raster值運算去掉原圖片的背影。但是只適用于原圖背景為黑色,才會看到效果。如圖,左邊部分為前景圖,右邊部分為屏蔽圖前景圖的背景必須為黑色,屏蔽圖的背景為白色以下為顯示的背景圖我們怎么樣使用則會圖來處理透明呢?其實就是Raster運算。將屏蔽圖和背景圖做“AND”運算,貼到目的DC;再將前景圖和背景圖做“OR”運算,貼到目的DC;現(xiàn)在開始編寫程

2、序:在VS2008中新建Win32程序,使用VC默認(rèn)的框架。首先定義全局變量:[cpp]viewplaincopyprint?1.HBITMAP?bg,?dra;????????????????????????????????//用來存儲背景與前景圖??2.HDC?hdc;????????????????????????????????????????//用來暫時存儲位圖的DC??HBITMAPbg,dra;//用來存儲背景與前景圖HDChdc;//用來暫時存儲位圖的DC然后在InitInstance()函數(shù)中,添加代碼,繪制圖形。[cpp]viewp

3、laincopyprint?1.BOOL?InitInstance(HINSTANCE?hInstance,?int?nCmdShow)??2.{??3.???HWND?hWnd;??4.???HDC?hdc;??5.??6.???hInst?=?hInstance;?//?將實例句柄存儲在全局變量中??7.??8.???hWnd?=?CreateWindow(szWindowClass,?szTitle,?WS_OVERLAPPEDWINDOW,??9.??????CW_USEDEFAULT,?0,?CW_USEDEFAULT,?0,?NULL,?N

4、ULL,?hInstance,?NULL);??10.??11.???if?(!hWnd)??12.???{??13.??????return?FALSE;??14.???}??15.??16.???MoveWindow(hWnd,?50,?50,?1024,?768,?true);??17.???ShowWindow(hWnd,?nCmdShow);??18.???UpdateWindow(hWnd);??19.???//建立窗口DC兼容DC??20.???hdc?=?GetDC(hWnd);??21.???mdc?=?CreateCompatibl

5、eDC(hdc);??22.???//載入位圖??23.???bg?=?(HBITMAP)LoadImage(NULL,?L"bg.bmp",?IMAGE_BITMAP,?1024,?768,?LR_LOADFROMFILE);??1.???dra?=?(HBITMAP)LoadImage(NULL,?L"dra.bmp",?IMAGE_BITMAP,?170,?99,?LR_LOADFROMFILE);??2.??3.???Paint(hdc);??????//繪制透明位圖??4.???ReleaseDC(hWnd,?hdc);????//釋放DC?

6、?5.???return?TRUE;??6.}??BOOLInitInstance(HINSTANCEhInstance,intnCmdShow){HWNDhWnd;HDChdc;hInst=hInstance;//將實例句柄存儲在全局變量中hWnd=CreateWindow(szWindowClass,szTitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);if(!hWnd){returnFALSE;}MoveWindow(hWnd,5

7、0,50,1024,768,true);ShowWindow(hWnd,nCmdShow);UpdateWindow(hWnd);//建立窗口DC兼容DChdc=GetDC(hWnd);mdc=CreateCompatibleDC(hdc);//載入位圖bg=(HBITMAP)LoadImage(NULL,L"bg.bmp",IMAGE_BITMAP,1024,768,LR_LOADFROMFILE);dra=(HBITMAP)LoadImage(NULL,L"dra.bmp",IMAGE_BITMAP,170,99,LR_LOADFROMFILE);

8、Paint(hdc);//繪制透明位圖ReleaseDC(hWnd,hdc);//釋放DCre

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。