要實現汽車跑動,首先我們要加載一張城市道路圖作為背景圖,然后就要把海龜的圖形變為汽車的模樣,最后實現兩輛汽車相向而行的效果。
首先,加載背景圖片:
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()
實現的效果如下:
-
編碼
+關注
關注
6文章
935瀏覽量
54763 -
循環
+關注
關注
0文章
92瀏覽量
15957 -
python
+關注
關注
56文章
4782瀏覽量
84453
發布評論請先 登錄
相關推薦
評論