Visual C++游戏开发笔记第6篇透明特效实战
透明特效的实战教程,Visual C++玩家不要错过。
2D 游戏里,前景图直接贴背景图上,总会有点突兀对吧?尤其是那种带黑边的怪兽图,看着就不太舒服。透明就显得重要,直接关系到画面的精致程度。
孙广东的这一篇《游戏开发笔记 6》讲得还蛮细,主要用的是BitBlt()配合SRCAND和SRCPAINT这两个 Raster 操作,来搞定前景透明融合的问题。方法也不难,先把黑白的屏蔽图和背景做AND,再把彩色的前景图和结果做OR,就能只保留你想要的图形部分。
像代码里定义了bg
和dra
两个位图,mdc
做中间缓存,套路比较清晰。WinMain、InitInstance()
这些结构也都有,写法偏标准,新手也能看懂。你照着照抄,跑起来没啥难度。
如果你做的是 2D RPG 或者横版动作游戏,遇到那种背景复杂、人物多边形图形需要融合的场景,这种技巧就实用了。要注意的是,屏蔽图要做得干净利落,黑白分明,不然会有残影。
如果你想再拓展,可以看看这几个资源:HGE 引擎、2D 游戏引擎,都比较适合 VC++方向的开发者。
嗯,如果你用 VC++开发 2D 游戏,又在苦恼贴图不自然,那这篇笔记真的挺值得一看。
249KB
文件大小:
评论区