2016-11-30 29 views
1

所以我学习虚拟编程类Python和我有一个任务,我必须创建一个使用海龟图形的图片。我在程序中使用诸如循环和程序员定义的函数之类的东西,但我在我的图片中想要做的事情有问题。我正在画天空中的云彩,我正试图让云彩在不同的位置绘制。我以40的增量增加x坐标,但是我试图让云在越过时越来越低。这是在这个代码列表的末尾:一只乌龟如何在for循环中向上移动?

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;博士/简单的解释:我试图上下移动循环图片,因此它不是简单的直线。我将如何在for循环中再次移动它一次?

+0

我认为你误解了窗口的零位在哪里。还有就是我提示你:) – DejaVuSansMono

+0

https://gyazo.com/3ad5268231b3217b81636cc070573b75 – JakeNBake

+0

不,我明白你的问题就好了。云数量越多,云数越低。 – DejaVuSansMono

回答

3

你可以检查side是否为偶数或奇数来决定是否增加或减少您的云位置。像这样:

for side in range(15): 
    drawCloud(joe,x,y) 
    x=x+40 
    if(side%2==0): 
     y=y-10 
    else: 
     y=y+10 
+1

当你已经有'side'时,你真的需要另一个柜台吗? –

+0

Duh。感谢您指出了这一点。 – medman826

+0

谢谢兄弟我在想那样的事情,但不知道该怎么做。 – JakeNBake