2016-11-30 10 views
1

私は仮想プログラミングクラスでPythonを学んでいます。私はTurtle Graphicsを使って画像を作成する必要があります。私はプログラムの中でループやプログラマ定義関数のようなものを使用していますが、私は自分の写真で何かしたいことに問題があります。私は空に雲を描いています。私は雲をさまざまな位置に描こうとしています。私は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() 

は現在、雲がゆっくりと一つ一つが描かれているよう下るが、1つの雲が100で次の90であるように私がやろうとしていることは、異なる高さで雲を作るていますDR /簡素説明し、次にバック100に、など私はその後、次回はそれが最高10

https://gyazo.com/3ad5268231b3217b81636cc070573b75

TL行くだろう、それが繰り返される最初の時間は、それが10を下に行くかどうかを確認するためにy=y-10, y+10のようなものを試してみました私はループした画像を上下に移動しようとしているので、単純に直線ではありません。 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

関連する問題