2017-07-28 34 views
0

我想知道如何在用戶獲得10點後添加矩形形狀。如何在pygame中的某段時間後添加一個矩形

我有一個叫做blocks()的函數,它只是繪製一個矩形。我已經爲這個寫的代碼片段是

#bunch of code 
main_gameloop() 

while running: 
     #bunch of code 

     if score >= 10: 
      blocks() 
      pygame.display.update() 
     p.display.update() 
     clock.tick(fps) 
main_gameloop() 

但是,什麼情況是,當用戶已經獲得了10便士的矩形只是忽閃忽滅它不顯示作爲固體

+0

能否請你加入'塊()'代碼是恰當的繪製矩形作爲可以與固定的問題有所幫助。 –

+0

@Professor_Joykill blocks()代碼只是簡單的pygame.draw.rect(screen,color,x1,y1,x2,y2) – John

+0

不要調用display.update兩次,每個循環只有一次 – cmd

回答

1

用戶時已經獲得了10便士矩形只是閃爍開啓和關閉

它不顯示作爲固體

我假設每次clock.tick運行時,這個邏輯都是通過的。每次按照您的計時器調用「blocks()」時,閃爍是由矩形重新繪製本身引起的。

通過在重新繪製矩形之前檢查矩形是否已經繪製,可以防止矩形閃爍。

一些僞代碼下面提供

bool shown = false 

    blocks() 
     … 
     shown=true 

    if score >= 10 
     if ! shown 
      blocks() 
     … 
     clock.tick(fps) 
+1

你完全對block()被稱爲每個計時器,這是因爲當遊戲開始時,它們是從用戶需要閃避的右側移動到左側的一個矩形。我的問題是我想要另一個矩形以相同的方式移動,但是當分數是10或更高時 – John

+0

沒關係我解決了它,我在我的screen.fill()之前繪製它, – John