Как закрыть окно pygame без использования quit () / sys.exit (), чтобы я не выходил из цикла вне игры? - PullRequest
2 голосов
/ 07 мая 2019

Я создаю систему чата и хочу вставить игру, созданную с помощью Pygame. В файле state_machine системы чата я установил состояние клиента как S_GAMING. Когда клиент вводит «game» в состоянии S_LOGGEDIN, состояние изменится на S_GAMING, а когда игра закончится, пользователь может выйти из игры, нажав кнопку «x» или подождав 3 секунды. .

У меня проблемы с закрытием окна игры без выхода из системы чата.

когда я использовал pygame.quit(), окно замерзнет. Когда я попробовал pygame.quit() и sys.exit() или quit(), я также вышел из системы чата.

Это часть файла game.py:

run = True

gameOver = False

timer = 0

while run:

   clock.tick(27)   

   #check events
   for event in pygame.event.get():
       if event.type == pygame.QUIT:
           run = False

   if not gameOver:

       drawWindow()
       for each in barriers:
           if each.isHit:
               gameOver = True
   else:
       if timer < 81:
           win.blit(game_over,(0,0))
           timer +=1 
           pygame.display.update() 
       else:
           run = False

pygame.display.quit()

pygame.quit()

Это часть файла chat_state_machine:

elif self.state == S_GAMING:

    import game

    self.state = S_LOGGEDIN

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

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