繁体   English   中英

海龟图形 setpos() 什么都不做

[英]Turtle graphics setpos() does nothing

出于某种原因,我的代码一直有效,直到它到达第 67 行(粗体文本)。 cursor 应该在 y 轴上向下移动 100px,但它会停留在那里并在第二个深蓝色的框上绘制框。 有谁知道这是为什么。 帮助将不胜感激。 我还是 Python 的新手。

def drawbox():
    for x in range (4):
        avo.color('white', 'blue')
        avo.begin_fill()

        for x in range(2):
            avo.forward(400)
            avo.right(90)
            avo.forward(100)
            avo.right(90)
        avo.end_fill()

        avo.penup()
        avo.setpos(0,-100)
        avo.pendown()

        avo.color('white', 'darkblue')
        avo.begin_fill()
        for x in range(2):
            avo.forward(400)
            avo.right(90)
            avo.forward(100)
            avo.right(90)
        avo.end_fill()

        avo.penup()
        **avo.setpos(0,-100)**
        avo.pendown()
        continue


    turtle.done()


drawbox()

问题是setpos()工作在绝对位置,而您想移动到对于您现在所在位置的 position。 通过做:

avo.setpos(0,-100)

你总是回到屏幕上的同一个位置。 尝试将您的两个setpos()调用更改为:

avo.sety(avo.ycor() - 100)

或者,更好的是,稍微重新设计您的程序以将海龟指向正确的方向,并在每个框后简单地向前移动 100 像素:

from turtle import Screen, Turtle

def drawboxes():
    turtle.setheading(270)

    for _ in range(2):
        for fill_color in ('blue', 'darkblue'):
            turtle.fillcolor(fill_color)
            turtle.begin_fill()

            for _ in range(2):
                turtle.forward(100)
                turtle.left(90)
                turtle.forward(400)
                turtle.left(90)

            turtle.end_fill()

            turtle.penup()
            turtle.forward(100)
            turtle.pendown()

screen = Screen()

turtle = Turtle()
turtle.pencolor('white')

drawboxes()

screen.exitonclick()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM