当年电影《黑客帝国》中下落的字符矩阵大家应该都会有很深的印象,即使今天重温一遍这部经典之作,仍然会觉这种电脑特效做的真帅啊,什么时候我也能做出这种效果来?想做就做,既然人家能做出来我们也能,好吧,先上图,最近不是流行什么开局一张图么?
我们把Matrix设计成矩阵下落的字符数组,整矩阵中有几十或上百条Matrix在下落,你可以想像一条条数组从天而降。。。。Matrix就是这其中的一条数组。 Matrix中有很多属性,用来控制自己的字符组成,下落速度,颜色深浅,间隔距离等,通过这些,控制自己在场景中下落,当然你的参数控制的越详细,可变数越多。
刚开始的时候总觉得满屏的字符,应该从何处下手呢?,不妨先从场景中打印一组字符开始吧,新建一个场景,然后创建一个Matrix对象,在场景中打印出来, 当然这组字符是如何生成的呢?还要随机生成,好的,如果你想到这些了,那么你就去动手实践,随数机,字符,添加到数组。
c = random.randint(33, 127)
chr(c)
对,字符就是这样生成的,有关char的基础理论,大家不太了解的可以自己去复习一下。把随机生成的字符在场景中竖排打印出来,你就成功了一半了。
场景中已经打印出来一组Matrix了,接下来我们就可以在Matrix.update()中控制修改他的下落,这里我把Matrix设置成了一个比较自由的类,生成的对象自控度还是很高的。 add()方法就是生成一个完整的自身,然后通过draw()方法在场景中渲染,update()中判断整组字符下落超屏外,即重新生成一组新的字符串继续下落,即可达成循环动画了。
感觉Matrix的编写是一次对编程基础的复习,其中涉及了大量的编程基础操作,是Python及Pygame学习中不可多得的教材,最主要是最终结果很帅哈。
本文源码下载
请git clone My_pygame下所有代码,以免造成游戏跑不起来的情况。 本例源文件:PY_RPG.demo.Matrix.py