在“
游戲畫面特效制作——半透明效果”的隨筆的代碼中做出了美觀的半透明效果,可是在運行的畫面中,似乎可看到前景圖四周還留著原來位圖的矩形輪廓,感覺有點美中不足。不過沒關系,在本篇隨筆中將介紹如何制作更完美的透明半透明效果。
制作透明半透明效果還是要運用前面所講的透明及半透明技巧,就是先進行透明處理再進行半透明處理。除此之外,還記得是怎么做透明的嗎?是利用貼圖函數直接與已經貼在窗口中背景圖進行兩個必要的Raster運算完成的。可是,如果這樣做的話,那結果的透明圖已經在窗口上產生了,又要怎么做半透明處理?
在這里多使用了一個內存DC與位圖對象,先在內存DC上完成透明,再取出這個DC傷的位圖內容來進行半透明處理,這樣就可以達到目的了。下面直接以一個范例來示范這種做法。這個范例中需要下面的位圖,用來制作前景圖的透明:
范例ch2_8:這個范例說明介紹如何產生透明半透明的效果。
下載地址:
ch2_8(上傳到windows live空間,可能需要MSN賬號登陸)
說明:程序源代碼中有相關的注釋。
程序運行結果如下圖:
PS:如想獲得更多關于Visual C++游戲開發的內容,可點擊隨筆
:《Visual C++游戲編程基礎》學習筆記——索引隨筆。