2017-07-28 18 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