Pygame.update不会在每个回合后更新

时间:2019-06-14 15:16:16

标签: python python-3.x pygame

我想爆炸立即发生或很快发生。有没有一种方法可以加快圆的形成或显示每个圆的形成,而不是全部形成20个然后显示呢?

我尝试问过很多人,我的老师,youtube,并在玩pygame.display.update()的位置

def explosion(x,y):
    explode = True
    while explode:
        startpoint = x,y
        colorchoice = [red,yellow,black,white]
        magnitude = 1
        while magnitude < 20:
            boom_bit_x = x + random.randrange(-1*magnitude,magnitude)
            boom_bit_y = y + random.randrange(-1*magnitude,magnitude)
            pygame.draw.circle(screen,colorchoice[random.randrange(0,4)],(boom_bit_x, boom_bit_y),random.randrange(4,7))
            magnitude += 1
            pygame.display.update()
        explode = False

1 个答案:

答案 0 :(得分:0)

您必须处理应用程序循环中的事件。分别见pygame.event.get() pygame.event.pump()

<块引用>

对于游戏的每一帧,您都需要对事件队列进行某种调用。这可确保您的程序可以在内部与操作系统的其余部分进行交互。

def explosion(x,y):
    explode = True
    while explode:
        startpoint = x,y
        colorchoice = [red,yellow,black,white]
        magnitude = 1
        while magnitude < 20:
            pygame.event.pump()
            boom_bit_x = x + random.randrange(-1*magnitude,magnitude)
            boom_bit_y = y + random.randrange(-1*magnitude,magnitude)
            pygame.draw.circle(screen,colorchoice[random.randrange(0,4)],(boom_bit_x, boom_bit_y),random.randrange(4,7))
            magnitude += 1
            pygame.display.update()
        explode = False