需要帮助使用龟模块

时间:2015-04-04 16:59:23

标签: turtle-graphics

所以我正在使用海龟模块编写程序。我有两个问题:

  1. 我有4只乌龟。如何在绘图时将其名称显示在屏幕上?

  2. 完成绘图后,如何退出一个屏幕并在同一个程序中打开另一个屏幕?

1 个答案:

答案 0 :(得分:0)

  我有4只乌龟。如何让他们的名字显示在屏幕上   在画画的时候?

当然,这是一个粗略的例子:

from random import choice
from turtle import Turtle, Screen

NAMES = ['Donnie', 'Raph', 'Mickey', 'Leo']

SPEEDS = ["slowest", "slow", "normal", "fast", "fastest"]

FONT = ("Arial", 12, "normal")

MAGNIFICATION = 5
STAMP_SIZE = 20
MAXIMUM_SPEED = 10
LINE_OFFSET = 50

screen = Screen()

WINDOW_WIDTH = screen.window_width()
START, FINISH = LINE_OFFSET - WINDOW_WIDTH//2, WINDOW_WIDTH//2 - (LINE_OFFSET + MAXIMUM_SPEED)

turtles = {name: Turtle(shape='turtle') for name in NAMES}

for offset, turtle in enumerate(turtles.values(), start=-len(NAMES)//2):
    turtle.turtlesize(MAGNIFICATION)
    turtle.color("black", "white")
    turtle.penup()
    turtle.goto(START, offset * MAGNIFICATION * STAMP_SIZE)
    turtle.speed(choice(SPEEDS))
    turtle.write("", font=FONT)  # dummy write for 1st undo

winner = False

while not winner:
    for name, turtle in turtles.items():
        turtle.undo()  # unwrite name
        turtle.forward(turtle.speed() + 1)
        turtle.write(name, font=FONT)  # rewrite name
        if turtle.xcor() >= FINISH:
            winner = True
            break


screen.exitonclick()

为了在文本居中和消除闪烁方面做得更好,我们需要一个或多个额外的隐形乌龟来处理文本。但是,当海龟转动时,文字不会随之转动,它总是水平的。

enter image description here