为什么我的pygame应用程序没有响应?

时间:2019-01-10 17:47:48

标签: python pygame

所以我需要为学校练习创建一个小游戏。我太懒了,无法在代码中创建所有屏幕,所以我只是对所有屏幕进行了png处理,然后在我的代码中将它们称为“ spelfase” 0、1和2。 Spelfase 0是显示游戏标题和其他内容的开始屏幕。 Spelfase 1是显示规则的规则屏幕。 Spelfase 2是实际的游戏。 我相当确定spelfase 1的代码是问题所在,因为当我输入该代码时,当我在开始屏幕上按下空格键时,我的应用程序没有响应。

我真的是编码新手,所以我没有尝试很多东西。

spelfase = 0
clock = pygame.time.Clock()
while not done:
    if spelfase == 0:
        for event in pygame.event.get():
            if event.type == pygame.QUIT: 
                done = True 
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_SPACE:
                    spelfase = 1

    screen.fill((255,255,255))
    bordrect = startscherm.get_rect() 
    screen.blit(startscherm, bordrect)
    clock.tick(60)
    pygame.display.flip()
while not done:
if spelfase == 1:
    for event in pygame.event.get():
        if event.type == pygame.QUIT: 
            done = True 
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_SPACE:
                spelfase = 2

    screen.fill((255,255,255))
    bordrect = regelscherm.get_rect()
    screen.blit(regelscherm, bordrect) 
    clock.tick(60)
    pygame.display.flip()
while not done:
    if spelfase == 2:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                done = True 
            elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_SPACE:
                print ("Knop: Spatie")

                worp = random.randint(1,6)
                posities[beurt] += worp
                if posities[beurt] >= 63:
                    posities[beurt] = 63
                if beurt == 0:
                    beurt = 1
                else:
                    beurt = 0

            elif event.key == pygame.K_BACKSPACE:
                print ("Knop: Backspace")
                beurt = 0
                worp = 0
                posities = [0,0]

    screen.fill((255,255,255))
    bordrect = bord.get_rect()
    screen.blit(bord, bordrect)
    clock.tick(60)
    pygame.display.flip()

1 个答案:

答案 0 :(得分:0)

您不会离开第一个循环,因为如果您按空格键,您仍不会“完成”

Observale<Person>

这是一个快速修复,但是您需要删除这些if语句并清理它们