R14中自带的Quick Tour,你就会知道线条渐变实际上有时候比淡入淡出更具魅力。
线条渐变实际上是在高彩模式下实现全屏淡入淡出的一种替代方案,因为它不需要我们直接访问帧缓存,而是利用被显示硬件加速了的Blit操作。在DirectDraw中,任何函数,只要一涉及到硬件加速,那么它的速度就不能仅仅用软件仿真速度的几倍来衡量,因为硬件所带来的速度提升往往是几十倍,甚至上百倍。虽然,对开发者来说,你必须考虑到某种硬件加速是否被用户的硬件所支持的各种情况,才能编出一个通用性好的程序,但是你根本就不用担心Blit是否被硬件支持,因为它和换页一样作为一个最基本的图形操作被固化到几乎所有品牌的显卡中去了。
线条渐变在实现过程中,并不象前面那些例程那么复杂,你只需不停的调用DirectDrawSurface接口的Blit函数,将原图上的每一个像素行Blit到主页面上。当然,每次Blit的像素行都是随机产生的,这样才能产生千变万化的动态效果。但是应该注意的是,你需要有一个逻辑来控制这些产生的随机数,让它们每次都不相同。最后,因为线条渐变速度是非常快的,你必须加以时间控制,否则它只会在你的屏幕上一闪而过。
老王 1999-2-23