Как начать игру по нажатию кнопки в Pygame - PullRequest
0 голосов
/ 11 июля 2019

Я хочу создать главное меню для моей игры.В главном меню я даю 2 варианта игры, например, нажмите пробел, чтобы начать игру, или ESC, чтобы закончить игру.

То, что я пробовал до сих пор,

Это моя функция mainMenu (), которая вызывает readygame ()

def mainMenu():
    screen.blit(menu, (0, 0))

    pygame.display.flip()

    keys = pygame.key.get_pressed()

    if keys[pygame.K_SPACE]:
        readyGame(True, False)
    elif keys[pygame.K_ESCAPE]:
        pygame.quit()
    pygame.event.pump()

и эту функцию readyGame ().Эта функция отвечает за запуск игры путем вызова функции runGame () - эта функция запускает игру.

def readyGame(run, gameOver):
game = Game(1)
game2 = Game(2)
game3 = Game(3)

while run:
    if game.level == 1:

        runGame(game)

        keys = pygame.key.get_pressed()

        if keys[pygame.K_x]:
            game = Game(1)
        elif keys[pygame.K_ESCAPE]:
            run = False
        pygame.event.pump()

        if gameOver:
            runGame(game)

    elif game.level == 2:
        runGame(game2)

        keys = pygame.key.get_pressed()

        if keys[pygame.K_x]:
            game2 = Game(2)
        elif keys[pygame.K_ESCAPE]:
            run = False
        pygame.event.pump()

        if gameOver:
            runGame(game)

    elif game.level == 3:
        runGame(game3)

        keys = pygame.key.get_pressed()

        if keys[pygame.K_x]:
            game3 = Game(3)
        elif keys[pygame.K_ESCAPE]:
            run = False
        pygame.event.pump()

        if gameOver:
            runGame(game)

И функция runGame () выглядит примерно так:

def runGame(theGame):

theGame.clock.tick(FPS)

# This function consists code for Events
theGame.events()
# This function consists code from enemy hit events
theGame.hit_or_not()
# This function consists code for player movements
theGame.movements()

if theGame.level == 1:
    # This function consists code for drawing the sprites over the screen
    theGame.redrawGameWindow()

elif theGame.level == 2:
    theGame.redrawGameWindow2()

elif theGame.level == 3:

    for o in objects:
        o.x -= 1.4
        if o.x < o.width * -1:
            objects.pop(objects.index(o))

    for o in objectsL:
        if o.x >= 300:
            objectsL.pop(objectsL.index(o))

    theGame.redrawGameWindow3()

Может кто-нибудь помочь мне найти способ создать главное меню, которое будет иметь только 2 опции: ПРОБЕЛ, чтобы начать игру, и ESC, чтобы закрыть ее.И я хочу, чтобы это произошло, когда игрок умрет.

Заранее спасибо

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