Python: ставит игру на паузу с помощью ключа

Прежде всего, я хочу извиниться за свой английский. Это не мой родной язык. Я хочу создать 2D-игру «Змейка» на Python. Я также хочу нажать кнопку «p», чтобы приостановить игру, и если я нажму ее еще раз, игра должна продолжиться нормально. Моя идея заключалась в том, чтобы использовать команду time.sleep. Если нажать p, он должен начать «считать» и реализовать его в команде сна. Если я снова сделаю p, он должен остановить таймер, а также команду сна. Может ли кто-нибудь помочь мне с этим, потому что я не могу найти что-то в Интернете ... Я использую pygames в качестве ключа.

Спасибо большое.

Джейс

Сначала сделайте игру, тогда будет легче думать о логике паузы, когда игра будет работать. Возможно, вы воспользуетесь time.sleep() или просто перестанете обрабатывать игровую логику и вместо этого сделаете паузу в анимации? Кто знает?

nosklo 10.08.2018 16:21

Никогда не используйте time.sleep() в pygame. Это злая функция, которая может вызвать множество проблем. На данный момент ваш вопрос слишком общий, и на него сложно ответить, потому что вы не публиковали код. У вас есть написанный код? Если да, воспользуйтесь ссылкой edit внизу своего вопроса, чтобы включить его. Если вы этого не сделаете, я предлагаю следовать эта серия руководств YouTube по созданию игры со змейкой. В приведенном ниже ответе есть код из того же руководства, только на веб-сайте.

Micheal O'Dwyer 12.08.2018 21:46
0
2
882
1

Ответы 1

Вы можете использовать эту функцию, чтобы приостановить игру:

def paused():

    largeText = pygame.font.SysFont("comicsansms",115)
    TextSurf, TextRect = text_objects("Paused", largeText)
    TextRect.center = ((display_width/2),(display_height/2))
    gameDisplay.blit(TextSurf, TextRect)


    while pause:
        for event in pygame.event.get():

            if event.type == pygame.QUIT:
                pygame.quit()
                quit()

        #gameDisplay.fill(white)


        button("Continue",150,450,100,50,green,bright_green,unpause)
        button("Quit",550,450,100,50,red,bright_red,quitgame)

        pygame.display.update()
        clock.tick(15)  

Если вы хотите привязать его к ключу, используйте это:

if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_p:
        pause = True
        paused()

Источник: https://pythonprogramming.net/pause-game-pygame/

Другие вопросы по теме