📜  在Python中使用 Turtle 创建一个简单的动画

📅  最后修改于: 2022-05-13 01:54:38.742000             🧑  作者: Mango

在Python中使用 Turtle 创建一个简单的动画

先决条件:用Python进行海龟编程
Turtle是一个类似于绘图板的Python功能,它可以让我们命令乌龟在上面画图!我们可以使用turtle.forward(…) 和turtle.right(…) 之类的函数来移动海龟。让我们创建一个基本动画,其中不同的小海龟围绕为它们创建的轨道赛跑。

要求

  • 海龟模块
  • 随机模块

方法

  • 首先,导入所需的模块。
  • 在海龟模块中有不同形状的指针可用(如箭头、经典和海龟)。由于这是一场“海龟赛跑”,我们需要“海龟”和“经典”的形状。
  • 我们将使用经典的形状来绘制赛道。
  • 列出第一只乌龟的规格,让乌龟进入赛道并为比赛做好准备。
  • 对其余的海龟做同样的事情。
  • 使用 randint() 设置海龟的速度。

下面是实现。

Python3
# required modules
from turtle import * from random import randint
  
     
# classic shape turtle
speed(0)
penup()
goto(-140, 140)
  
# racing track
 
for step in range(15):
    write(step, align ='center')
    right(90)
     
    for num in range(8):
        penup()
        forward(10)
        pendown()
        forward(10)
         
    penup()
    backward(160)
    left(90)
    forward(20)
 
# first player details
player_1 = Turtle()
player_1.color('red')
player_1.shape('turtle')
  
# first player proceeds to racing track
player_1.penup()
player_1.goto(-160, 100)
player_1.pendown()
  
# 360 degree turn
for turn in range(10):
    player_1.right(36)
 
# second player details
player_2 = Turtle()
player_2.color('blue')
player_2.shape('turtle')
  
# second player enters in the racing track
player_2.penup()
player_2.goto(-160, 70)
player_2.pendown()
  
# 360 degree turn
for turn in range(72):
    player_2.left(5)
 
# third player details
player_3 = Turtle()
player_3.shape('turtle')
player_3.color('green')
  
# third player enters in the racing track
player_3.penup()
player_3.goto(-160, 40)
player_3.pendown()
  
# 360 degree turn
for turn in range(60):
    player_3.right(6)
 
# fourth player details
player_4 = Turtle()
player_4.shape('turtle')
player_4.color('orange')
  
# fourth player enters in the racing track
player_4.penup()
player_4.goto(-160, 10)
player_4.pendown()
  
# 360 degree turn
for turn in range(30):
    player_4.left(12)
 
# turtles run at random speeds
for turn in range(100):
    player_1.forward(randint(1, 5))
    player_2.forward(randint(1, 5))
    player_3.forward(randint(1, 5))
    player_4.forward(randint(1, 5))


输出: