在“
游戏画面特效制作——半透明效果”的随笔的代码中做出了美观的半透明效果,可是在运行的画面中,似乎可看到前景图四周还留着原来位图的矩形轮廓,感觉有点美中不足。不过没关系,在本篇随笔中将介绍如何制作更完美的透明半透明效果。
制作透明半透明效果还是要运用前面所讲的透明及半透明技巧,就是先进行透明处理再进行半透明处理。除此之外,还记得是怎么做透明的吗?是利用贴图函数直接与已经贴在窗口中背景图进行两个必要的Raster运算完成的。可是,如果这样做的话,那结果的透明图已经在窗口上产生了,又要怎么做半透明处理?
在这里多使用了一个内存DC与位图对象,先在内存DC上完成透明,再取出这个DC伤的位图内容来进行半透明处理,这样就可以达到目的了。下面直接以一个范例来示范这种做法。这个范例中需要下面的位图,用来制作前景图的透明:
范例ch2_8:这个范例说明介绍如何产生透明半透明的效果。
下载地址:
ch2_8(上传到windows live空间,可能需要MSN账号登陆)
说明:程序源代码中有相关的注释。
程序运行结果如下图:
PS:如想获得更多关于Visual C++游戏开发的内容,可点击随笔
:《Visual C++游戏编程基础》学习笔记——索引随笔。