2016-11-30 72 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