Python的海龟画图模块不仅仅是画图。用它还能制作动画,制作多媒体游戏等更多创意作品。在这个叫《酷酷的爆炸效果》作品中。每一个爆炸效果其实都是一只海龟对象。只不过它们的造型在不断地变化。为了有很多效果同时运行,采用了多线程的方式设计这个程序。为了理解这个作品是如何制作的,下面我们把简单版本的这个程序进行了问题分解。
我们首先用from turtle import *语句导入海龟命令,然后用Screen命令新建屏幕,接着把爆炸造型一系列gif图片注册到造型列表。所谓造型列表,源于Python海龟画图内置定义的造型字典。它是这个字典的字母排序的键值列表。分析一下turtle.py模块就能知道这个造型字典的名字叫_shapes。如果要往这个字典中添加一个造型。可以用屏幕的addshape或register_shape命令实现。最后新建海龟对象,让海龟不断地切换造型。那么一个最简单的爆炸效果动画就制作出来了。以下是最简单版本的爆炸效果源代码:
from turtle import * # 从海龟模块导入所有命令
screen = Screen() # 新建屏幕
screen.bgcolor('black') # 设定背景为黑色
eps = [f"explosion/{i}.gif" for i in range(6)]
[screen.addshape(e) for e in eps] # 注册eps每张图到造型列表
t = Turtle() # 新建海龟对象
for e in eps: # 让海龟切换每一个造型
t.shape(e)
t.hideturtle() # 隐藏海龟
如果要有很多爆炸效果此起彼伏地爆炸,怎么办呢?这可以有几种方法,可以用屏幕的定时器命令即ontimer模拟多线程,也可以直接用多线程。接下有详细的视频教程,大家最好在电脑上看,相信你一定能学会!这个作品的源代码和素材的下载网址在我的博客里,也可以联系本人发送给你。