设为首页 加入收藏

TOP

(Visual C++)游戏开发笔记之六――游戏画面绘图(三)透明特效的制作方法 (三)
2014-11-23 20:17:37 来源: 作者: 【 】 浏览:100
Tags:Visual 游戏 开发 笔记 游戏画面 绘图 透明 特效 制作方法
ster参数值设置为SRCAND。
BitBlt(hdc,280,320,85,99,mdc,0,0,SRCPAINT);//进行制作透明贴图的第二步骤,即将前景图与背景图做"OR"运算,前景图在整张恐龙图中,最左上角起始位置的坐标为(0,0),BitBlt()函数最后一个参数值设置为SRCPAINT。
}
//****消息处理函数**********************************
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hdc;
switch (message)
{
case WM_PAINT: //窗口重绘消息
hdc = BeginPaint(hWnd, &ps);
MyPaint(hdc);
EndPaint(hWnd, &ps);
break;
case WM_DESTROY: //窗口结束消息
DeleteDC(mdc);
DeleteObject(bg);
DeleteObject(dra);
PostQuitMessage(0);
break;
default: //其他消息
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}


最后程序的运行结果为:

\


通过BitBlt()贴图函数及Raster运算值的设定,很简单地就做出了想要的透明效果,这种方法在设计2D游戏的一些画面内容时使用相当频繁。


最后我说明一个非常关键的问题(多谢yao050421103 的提醒),而这点由恰恰依赖于美工设计师们。我们在准备位图资源的时候,前景图部分绝对不能包含背景图的颜色,否则,就不会得到我们预期的结果。


还要指出的一个地方是,前景图的需要还原为背景色的部分一定要为黑色(多谢infoworld的指出)。


笔记六到这里就结束了。

本节源代码请点击这里下载:【Visual C++】Code_Note_6http://download.csdn.net/detail/zhmxy555/4175236


请大家继续关注【Visual C++】游戏开发笔记系列。

非常希望能与大家一起交流,共同学习和进步。

最后,谢谢大家的支持~~~

摘自 枫落★流年
首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇(Visual C++)游戏开发笔记之二.. 下一篇(Visual C++)游戏开发笔记之七..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: