2017-05-07 3 views
1

enter image description here私は形状の無限の流れを作成しようとしています:メインコードでpygameで形状の無限フローシーケンスを作る方法は?

for i in range(10): 
    draw_tree(x+150*i) 

x += 1 

def draw_tree(x): 
    pygame.draw.rect(screen, BROWN, [60+x,400,30,45]) 
    pygame.draw.polygon(screen, GREEN, [[150+x, 400],[75+x, 250],[0+x, 400]]) 
    pygame.draw.polygon(screen, GREEN, [[140+x, 350],[75+x, 230],[10+x, 350]]) 

はと動きを作り出します。このシーケンスを無限にするには?

+3

Doing _what_、is exactly? – JohanL

+0

形の線形無限チェーン –

+1

'for'ループは永遠に動くべきですか? – JohanL

答えて

0

ここに、私がコメントに記述した内容を示す例があります。 forループは、現在のxオフセットを追加するi = -150に6つのツリーを描画し始めます。 xが>= 150の場合は、単に0にリセットするだけです。

import sys 
import pygame as pg 


pg.init() 
screen = pg.display.set_mode((640, 480)) 
BROWN = pg.Color('brown') 
GREEN = pg.Color('green4') 


def draw_tree(x): 
    pg.draw.rect(screen, BROWN, [60+x, 400, 30, 45]) 
    pg.draw.polygon(screen, GREEN, [[150+x, 400], [75+x, 250], [0+x, 400]]) 
    pg.draw.polygon(screen, GREEN, [[140+x, 350], [75+x, 230], [10+x, 350]]) 


def main(): 
    clock = pg.time.Clock() 
    x = 0 
    done = False 

    while not done: 
     for event in pg.event.get(): 
      if event.type == pg.QUIT: 
       done = True 

     x += 4 
     if x >= 150: 
      x = 0 

     screen.fill((255, 255, 255)) 
     for i in range(-150, 4*150+1, 150): 
      draw_tree(i+x) 
     pg.display.flip() 
     clock.tick(30) 


if __name__ == '__main__': 
    main() 
    pg.quit() 
    sys.exit() 
関連する問題