【问题标题】:I am making a traffic light with Python turtle and at the end of the sequence I want all the lights to blink yellow我正在用 Python turtle 制作一个红绿灯,在序列结束时我希望所有的灯都闪烁黄色
【发布时间】:2018-01-02 23:55:07
【问题描述】:

这是我的代码。我想要的只是让三只海龟同时移动/眨眼 就像一个坏掉的红绿灯。 我不知道该怎么做。 如果您想查看我的所有代码,请通过答案告诉我。

#flash
speed(20)
#pens
pen1 = Turtle()
pen2 = Turtle()
pen3 = Turtle()
#loop
def loop():

while True:
    pen1.penup()
    pen1.color('yellow')
    pen1.goto(0,90)
    pen1.begin_fill()
    pen1.pendown()
    pen1.circle(40)
    pen1.penup()
    pen1.end_fill()
    pen1.color('black')
    time.sleep(1)
    pen1.begin_fill()
    pen1.pendown()
    pen1.circle(40)
    pen1.penup()
    pen1.end_fill()
    time.sleep(1)
while True:
    pen2.penup()
    pen2.color('yellow')
    pen2.goto(0,-140)
    pen2.begin_fill()
    pen2.pendown()
    pen2.circle(40)
    pen2.penup()
    pen2.end_fill()
    pen2.color('black')
    time.sleep(1)
    pen2.begin_fill()
    pen2.pendown()
    pen2.circle(40)
    pen2.penup()
    pen2.end_fill()
    time.sleep(1)



return loop()

【问题讨论】:

  • 这看起来不太像 python ...
  • while 循环将永远运行,所以我想它不会进入第二个循环......
  • 那么我将如何解决它
  • 如果这真的是 Python,请正确缩进你的代码,这样它至少可以执行。标签在 Stack Overflow 上表现不佳。请使用 4 空格缩进。
  • StephenC, ibug 这是一个与python相关的问题。这是turtle-graphicsturtle — Turtle graphics for Tk

标签: python turtle-graphics


【解决方案1】:

这里有一个基于两个关键点的解决方案:首先,乌龟绘制交通灯,乌龟交通灯;其次,我们使用turtle中的ontimer事件来控制闪烁:

from turtle import Turtle, Screen

CURSOR_SIZE = 20

def blink():
    for turtle in screen.turtles():
        turtle.fillcolor('yellow' if turtle.fillcolor() == 'black' else 'black')

    screen.ontimer(blink, 1000)

screen = Screen()

pen1 = Turtle(shape='circle')
pen1.shapesize(80 / CURSOR_SIZE)
pen1.color('black', 'yellow')
pen1.penup()
pen1.sety(90)

pen2 = pen1.clone()
pen2.sety(0)

pen3 = pen1.clone()
pen3.sety(-90)

blink()

screen.mainloop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-10
    • 2016-08-09
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    相关资源
    最近更新 更多