2013-10-30 27 views
0

對於一個學校作業,我們必須使用pygame形狀創建一張圖片,並且使用偏移量的for循環有問題。我正試圖在道路上劃分破碎的黃線。但是,問題在於這些線條垂直重複。堆疊在彼此的頂部。如何使用for/while循環pygame中的形狀來創建重複模式?

import pygame 
pygame.init() 
white= [255,255,255] 
red = [255, 0, 0] 
size = [400,500] 
screen = pygame.display.set_mode(size) 
done = False 
clock = pygame.time.Clock() 

while done == False: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      done = True 

    screen.fill(white) 
    for y_offset in range(100,0,-10): 
     pygame.draw.line(screen,red,[10,+y_offset],[100,0+y_offset],5) 

    pygame.display.flip() 

pygame.quit() 

如果使用此代碼,它將打印10條紅色水平線。我想知道如何讓線條重複水平而不是垂直。我不知道如何讓它們像這樣: - - - 有人可以幫助我循環過程嗎?我只是不明白它的抵消部分。謝謝!

+0

這聽起來像你想沿X重複,所以你需要用你的x值的偏移 – ninMonkey

+0

只是一個供參考:[10 + Y_OFFSET],[100, 0 + y_offset]中,第一個括號中的+沒有用,第二個中的0+也沒用。 – jgritty

回答

0

我不想放棄的答案,但看看這些4線不幫助你:

pygame.draw.line(screen, red, [10, 0], [100, 0], 5) 
pygame.draw.line(screen, red, [110, 0], [200, 0], 5) 
pygame.draw.line(screen, red, [210, 0], [300, 0], 5) 
pygame.draw.line(screen, red, [310, 0], [400, 0], 5) 

而且,我甚至100%肯定這是你想要的。

+0

這正是我想要的!但是,我的老師希望我們使用while循環或for循環不要一次又一次地重寫代碼,她希望我們使用一個循環,我只是想知道是否有另一種方式來寫它謝謝 – user2939039

+0

這只是一個提示,我離開循環邏輯給你。 – jgritty

0

我想出了答案!我使用了一個while循環,但是我發現必須將+ y_offset添加到X座標而不是Y.這允許它水平重複。謝謝您的幫助(:

y_offset = 0 
while y_offset < 700: 
    pygame.draw.line(screen,yellow,[0+y_offset,480],[50+y_offset,480],5) 
    y_offset = y_offset+70