如何在pyhton 3中创建一个闪烁的单词

时间:2019-04-14 07:23:51

标签: python-3.x turtle-graphics

我必须使“停止”一词闪烁或在停止标志中闪烁。

我用乌龟图形制作了停车标志,但不知道如何使单词停止闪烁。这是我班的作业。

任何帮助将不胜感激。

这是我到目前为止所做的代码:

import turtle

t = turtle.Turtle()

t.color("black", "red")
t.begin_fill()
for count in range(8):
    t.forward(60)
    t.left(45)
t.forward(20)
t.end_fill()
t.color("black")
t.begin_fill()
t.right(90)
t.forward(180)
t.left(90)
t.forward(20)
t.left(90)
t.forward(180)
t.end_fill()
t.left(90)
t.forward(20)
t.color("white")
t.penup()
t.goto(-20, 40)
t.write("STOP", font=("Impact", 50))
t.goto(-30, -10)

2 个答案:

答案 0 :(得分:1)

基于this answer,您可以通过创建一个单独的Turtle对象来编写文本并将其清除来实现此目的:

# create second turtle used for blinking text
eraseable = turtle.Turtle()
eraseable.color("white")
eraseable.hideturtle()
eraseable.up()
eraseable.setposition(t.position())

您可以使用这种方法使文本每秒闪烁一次:

import time

# blink 20 times
for i in range(0,20):
    eraseable.write("STOP", font=("Impact", 50))
    time.sleep(0.5)
    eraseable.clear()
    time.sleep(0.5)

完整演示:https://repl.it/@glhr/55672932

答案 1 :(得分:0)

我不会使用像import time这样的模块来创建很多不会收集垃圾的全局海龟,而是会使用现有的海龟(绘制完成后再使用)和海龟自己的{{1 }}事件以使符号动画:

ontimer

此方法与@glhr的解决方案之间的区别是,如果您在闪烁时关闭另一个解决方案的窗口,由于事件不同步,您将收到十几行错误消息。此解决方案不会出现任何错误,因为它的闪烁与turtle的事件循环是同步的。