【问题标题】:Python Turtles , what am i doing wrong here?Python Turtles,我在这里做错了什么?
【发布时间】:2018-01-20 17:45:09
【问题描述】:

所以...我几乎是海龟模块的初学者,我想同时移动所有海龟,但可能是因为它们永远不会停止移动,我不能移动超过两个,什么可以我要改善吗? 这是代码:(我确实计划在问题解决后制作更多“颜色”)

from turtle import Turtle, Screen
wn = Screen()
wn.bgcolor('black')

speed = 4


def game():

    def red(coordred):

        redg = Turtle()
        redg.hideturtle()
        redg.shape('circle')
        redg.color('red')
        redg.penup()
        redg.shapesize(2.5, 2.5, 2.5)
        redg.setheading(270)
        redg.goto(-280, 320 + coordred * 50)
        redg.showturtle()

        def movred():
            redg.forward(speed)
            wn.ontimer(movred, 1)

        movred()


    def green(coordgreen):
        greeng = Turtle()
        greeng.hideturtle()
        greeng.shape('circle')
        greeng.color('green')
        greeng.penup()
        greeng.shapesize(2.5, 2.5, 2.5)
        greeng.setheading(270)
        greeng.goto(-100, 320 + coordgreen * 50)
        greeng.showturtle()

        def movgreen():
            greeng.forward(speed)
            wn.ontimer(movgreen, 1)

        movgreen()

    red(0)
    green(1)
    green(2)


game()
wn.mainloop()

【问题讨论】:

    标签: python turtle-graphics


    【解决方案1】:

    使用while True 的典型方式确实有效:

    from turtle import Turtle, Screen
    wn = Screen()
    wn.bgcolor('black')
    speed = 4
    
    turtles = [('red', 270),
               ('blue', 260),
               ('green', 250),
               ('yellow', 240),
              ]
    
    def game():
        myTurtles = []
        for (color, heading) in turtles:
            t = Turtle()
            t.shape('circle')
            t.color(color)
            t.shapesize(2.5, 2.5, 2.5)
            t.setheading(heading)
            t.showturtle()
            myTurtles.append(t)
    
        while True:
            for t in myTurtles:
                t.forward(speed)
    
    game()
    wn.mainloop()
    

    如果您增加准时时间,您的代码也将起作用。

     wn.ontimer(movgreen, 20)
    

    适用于 3 只海龟。您需要更多时间来处理更多对象。

    【讨论】:

    • 成功了,谢谢,用你的代码制作很多海龟要好得多,顺便问一下,有没有办法更快地生成海龟?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-02
    • 2023-03-24
    • 2016-03-03
    • 2013-06-28
    • 2023-01-19
    • 1970-01-01
    • 2020-12-23
    相关资源
    最近更新 更多