要实现汽车跑动,首先我们要加载一张城市道路图作为背景图,然后就要把海龟的图形变为汽车的模样,最后实现两辆汽车相向而行的效果。
首先,加载背景图片:
turtle.bgpic(picname=None)
turtle.bgpic(picname=None)
设置背景图片或返回当前背景图片的名称。如果picname
是文件名,则将相应的图像设置为背景。如果 picname
是 "nopic"
,则删除背景图像(如果存在)。如果 picname
是 None
,则返回当前背景图像的文件名。
这里我们加载同文件目录下的背景图片如下:
import turtle
turtle.bgpic("bg1.png") # 加载背景图片
```然后,添加汽车作为画笔形状:
turtle.register_shape(name)
`turtle.register_shape()`可以新增更多的画笔`shape`,其用法之一就是添加`gif`图片作为画笔的新形状。使用自己的图片作为画笔shape时需要注意,首先海龟仅支持`gif`图片,另外这样的画笔`shape`无论怎样设置`resizemode`均不能通过`shapesize`指令进行笔头大小设置。以图片作为`shape`,笔头的大小就是由图片本身大小所决定的。当然,`turtle.register_shape()`还可以添加用元组作为坐标描述的多边形作为画笔的`shape`,这里我们并没有用到,就不过多赘述了。
因为我们要实现两辆汽车相向而行,所以要创建两个turtle的实例,并加载不同形状的汽车,如下:
turtle.register_shape('car1.gif') # 把小车图片放入海龟可用形状仓库中,便于调用
car1 = turtle.Turtle() # 生成turtle,命名为car1
car1.shape('car1.gif')
turtle.register_shape('car2.gif')
car2 = turtle.Turtle()
car2.shape('car2.gif')
最后,就是和乌龟赛跑一样,利用`for`循环实现汽车一起运行的效果:
car1.penup() # 抬笔,不要留下轨迹
car2.penup()
car1.goto(-300, -110)
car2.goto(300, -200)
car2.left(180)
car1.speed(2)
car2.speed(2)
for sp in range(1, 80):
car1.forward(sp)
car2.forward(sp)
turtle.done()
所以,所有总的代码是:
import turtle
turtle.bgpic("bg1.png") # 加载背景图片
turtle.register_shape('car1.gif') # 把小车图片放入海龟可用形状仓库中,便于调用
car1 = turtle.Turtle() # 生成turtle,命名为car1
car1.shape('car1.gif')
turtle.register_shape('car2.gif')
car2 = turtle.Turtle()
car2.shape('car2.gif')
car1.penup() # 抬笔,不要留下轨迹
car2.penup()
car1.goto(-300, -110)
car2.goto(300, -200)
car2.left(180)
car1.speed(2)
car2.speed(2)
for sp in range(1, 80):
car1.forward(sp)
car2.forward(sp)
turtle.done()
-
循环
+关注
关注
0文章
92浏览量
15957 -
for
+关注
关注
0文章
44浏览量
15797 -
python
+关注
关注
56文章
4782浏览量
84456
发布评论请先 登录
相关推荐
评论