乌龟如何在 for 循环中上下移动?
How can a turtle be moved up then down in a for loop?
所以我正在学习 python 虚拟编程 class 并且我有一个作业,我必须使用 Turtle Graphics 创建图片。我在程序中使用了诸如 for 循环和程序员定义的函数之类的东西,但是我对我想在我的图片中做的事情有疑问。我在天空中画云,我试图让云画在不同的位置。我正在以 40 为增量增加 x 坐标,但我试图让云在它穿过时被放置得越来越高和越来越低。它位于此代码列表的末尾:
import turtle
def backFill(b, c, x, y, l, h):
b.penup()
b.setpos(x, y)
b.color(c)
b.pendown()
b.begin_fill()
for side in range(2):
b.forward(l)
b.left(90)
b.forward(h)
b.left(90)
b.end_fill()
def drawCloud(c, x, y):
c.penup()
c.setpos(x, y)
c.pendown()
c.color("grey")
c.begin_fill()
for side in range(5):
c.circle(10)
c.left(80)
c.end_fill()
def main():
print("Cars")
joe = turtle.Turtle()
joe.speed(0)
backFill(joe,"green",-200,-100,400,25)
backFill(joe,"black",-200,-75,400,75)
backFill(joe,"green",-200,0,400,25)
backFill(joe,"sky blue",-200,25,400,110)
x=-192.5
for side in range(10):
backFill(joe,"yellow",x,-40,25,5)
x=x+40
x=-180
y=100
for side in range(15):
drawCloud(joe,x,y)
x=x+40
y=y-10
main()
目前,随着每一朵云都被绘制出来,云慢慢下降,但我想做的是让云在不同的高度,比如一朵云在 100 下一个 90 然后回到 100,等等。我尝试了 y=y-10, y+10
看看它是否会在第一次重复时下降 10,然后下一次它会上升 10。
https://gyazo.com/3ad5268231b3217b81636cc070573b75
tl;dr/simpler 解释:我正在尝试上下移动环状图片,使其不只是在一条直线上。我如何在 for 循环中将它向下移动一次然后再向上移动一次?
您可以检查 side
是偶数还是奇数来决定是增加还是减少您的云位置。像这样:
for side in range(15):
drawCloud(joe,x,y)
x=x+40
if(side%2==0):
y=y-10
else:
y=y+10
所以我正在学习 python 虚拟编程 class 并且我有一个作业,我必须使用 Turtle Graphics 创建图片。我在程序中使用了诸如 for 循环和程序员定义的函数之类的东西,但是我对我想在我的图片中做的事情有疑问。我在天空中画云,我试图让云画在不同的位置。我正在以 40 为增量增加 x 坐标,但我试图让云在它穿过时被放置得越来越高和越来越低。它位于此代码列表的末尾:
import turtle
def backFill(b, c, x, y, l, h):
b.penup()
b.setpos(x, y)
b.color(c)
b.pendown()
b.begin_fill()
for side in range(2):
b.forward(l)
b.left(90)
b.forward(h)
b.left(90)
b.end_fill()
def drawCloud(c, x, y):
c.penup()
c.setpos(x, y)
c.pendown()
c.color("grey")
c.begin_fill()
for side in range(5):
c.circle(10)
c.left(80)
c.end_fill()
def main():
print("Cars")
joe = turtle.Turtle()
joe.speed(0)
backFill(joe,"green",-200,-100,400,25)
backFill(joe,"black",-200,-75,400,75)
backFill(joe,"green",-200,0,400,25)
backFill(joe,"sky blue",-200,25,400,110)
x=-192.5
for side in range(10):
backFill(joe,"yellow",x,-40,25,5)
x=x+40
x=-180
y=100
for side in range(15):
drawCloud(joe,x,y)
x=x+40
y=y-10
main()
目前,随着每一朵云都被绘制出来,云慢慢下降,但我想做的是让云在不同的高度,比如一朵云在 100 下一个 90 然后回到 100,等等。我尝试了 y=y-10, y+10
看看它是否会在第一次重复时下降 10,然后下一次它会上升 10。
https://gyazo.com/3ad5268231b3217b81636cc070573b75
tl;dr/simpler 解释:我正在尝试上下移动环状图片,使其不只是在一条直线上。我如何在 for 循环中将它向下移动一次然后再向上移动一次?
您可以检查 side
是偶数还是奇数来决定是增加还是减少您的云位置。像这样:
for side in range(15):
drawCloud(joe,x,y)
x=x+40
if(side%2==0):
y=y-10
else:
y=y+10