Python的turtle模块不仅可以用来绘制一些基本的图形,还有与图片结合,做出一些特殊的效果,还可以用来做二维小游戏。本篇是介绍用turtle模块做出的一幅动态的鱼儿游过的画面和动态的雨景图
一条条金龙鱼
1、先看一下效果图
2、创建屏幕对象
首先是导入实例化一个turtle屏幕对象,用setup()建立屏幕,并设置好屏幕的宽、高;然后注册我们需要用到的3张图片
#设置场景幕布(宽高,背景色, 飞船, 帧数)
s = Screen()
s.title('一条条金龙鱼@栀子') #设置标题
w, h = 1200, 700 #设置屏幕大小
s.setup(w, h) #建立屏幕
s.bgcolor('black') #设置颜色为黑色
s.register_shape('s0.gif')
s.register_shape('s1.gif')
s.register_shape('s2.gif')
#第一个参数为作图过程时长,第二个参数为刷新间隔时长(即帧数,单位毫秒)
s.tracer(0, 5) #为0表示禁用动画
注意,这里的register_shape()只能注册gif格式的图片。
3、画星空
我们的背景可以自定义一张图片,用对象名.bgpic(‘filename’)加入图片,也可以自己画一个,比如我画一个星空:
#创建星空
star = Turtle()
star.shape('circle') #新建一个画笔,设置为圆形
star.shapesize(0.05, 0.05) #改变圆形大小
star.color('white')
star.penup()
star.speed(0)
for i in range(100):
x = randint(-w/2, w/2) #w为开始定义的屏幕宽度,h为高度
y = randint(-h/2, h/2)
star.goto(x, y)
star.stamp() #使画笔留下痕迹
4、然后我们需要创建鱼群,并克隆鱼到鱼群里
#创建鱼群,用空列表来装鱼
mother_fishs = [
Turtle(shape='s0.gif', visible=False), #初始设置为不可见
Turtle(shape='s1.gif', visible=False),
Turtle(shape='s2.gif'