Window下的2D游戏-贴图技术

本文详细介绍了在Windows GUI编程中如何实现常规的位图加载和贴图操作,包括使用LoadImage、CreateCompatibleDC、SelectObject和BitBlt函数。同时,针对透明贴图问题,讲解了透明遮罩法和透明色彩法两种解决方案,确保图片素材在贴图时不出现黑框,实现自然的透明效果。
摘要由CSDN通过智能技术生成

一.直接贴图-常规操作四步骤

1.利用LoadImage(...)从磁盘中加载位图资源,得到它的位图句柄

 2.利用CreateCompatibleDC()创建一个兼容DC                   

3.利用SelectObject(...)把位图对象选入到兼容DC中

4.使用BitBlt(...)把图片贴到客户区中

二.透明贴图:用GDI支持的图片格式BMP制作成的图片素材,如果不经过处理直接进行贴图,会出现黑框的"穿帮镜头",所以需要透明贴图

1.透明遮罩法

  • 制作遮罩图
  • 利用SelectObject(...)把位图对象选入到兼容DC中
  • 利用BitBlt(...)中最后一个参数类型改变贴图方式,将遮罩图和背景图做AND位运算,运算后的结果贴到DC中
  • 利用BitBlt(...)中最后一个参数类型改变贴图方式,将前景图和背景图做OR位运算,运算后的结果贴到DC中

        

2.透明色彩法:贴图时可以设置某种颜色为透明色

  •  利用CreateCompatibleBitmap(...)创建一个和窗口兼容的空的位图对象,然后利用SelectObject(...)把它选择到HDC中,避免了HDC二次贴图会失效的副作用

  • 把背景图选择,贴图到HDC中
  • 把人物图选择,利用TransparentBlt(...)进行透明色彩处理贴图到HDC中
  • 最后利用BitBlt(...)把处理好的位图对象贴到客户区

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值