Почему мое приложение Pygame не отвечает? - PullRequest
0 голосов
/ 10 января 2019

Итак, мне нужно создать небольшую игру для школьного упражнения. Мне лень создавать все экраны в коде, поэтому я просто создал 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 голосов
/ 10 января 2019

Вы не выходите из первого цикла, потому что если вы нажмете пробел, вы все еще не «сделали»

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()
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()
    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()

Это быстрое решение, но вам нужно удалить эти операторы if и очистить все

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...