我们在前一节,学习了精灵的变形、放大和缩小,并且学习了如何使用精灵类和组的概念来管理精灵,制成动画。今天,我将带你学习淡入淡出和碰撞热点的判断。
所谓的淡入淡出,就是英文的 fade-in 和 fade-out。淡入淡出在电影、游戏、CG、操作系统、手机 UI、应用等等各种地方随处可见。那究竟什么是淡入淡出呢?它在游戏中究竟如何实现呢?在我们的打飞机游戏中,什么时候会用到这个操作呢?
什么是淡入淡出?
不知道你有没有注意,在我们玩过的打飞机游戏中,当每一关游戏开始的时候,都会有个游戏画面逐渐出现的过程。短短几秒,从无到有,整个画面就呈现在你眼前了。同样,每一关结束的时候,也会有个画面逐渐消失的过程。
从画面效果讲,这个画面从有到逐渐屏幕变暗,直到消失,或者反过来,由暗逐渐变亮,到完全进入画面的过程,就叫做淡入淡出。从声音角度讲,也存在淡入淡出,比如音乐从无声到逐渐有声,或者从有声到逐渐无声。
在 Pygame 中并不存在“画面的淡入淡出”这样的函数,需要我们自己去实现这样的功能。
首先,如果我们想给这张图片进行淡入淡出的处理的话,就需要对它进行 alpha 混合处理。我们在前面谈到过 alpha 混合,你可以理解成半透明,但是 alpha 混合究竟是什么呢?