Le programme Pygame ne se ferme pas toujours après avoir appuyé sur la croix rouge
piotrecobi
J'essaie de faire un simple jeu de tic tac toe en utilisant Pygame. Pendant que le jeu est joué, il faut parfois plus d'une pression sur la «croix rouge» pour quitter le jeu.
while playing is True:
clock.tick(30)
if round_number % 2 == 1:
current_player = 1
else:
current_player = 2
while True:
pygame.event.get()
if pygame.event.get(eventtype=pygame.QUIT):
pygame.quit()
exit()
if pygame.mouse.get_pressed()[0] == 1:
break
while True:
pygame.event.get()
if pygame.mouse.get_pressed()[0] == 0:
break
place_object(current_player, pygame.mouse.get_pos())
print(round_number)
pygame.display.update()
if 7 < pygame.mouse.get_pos()[0] < 393 and 7 < pygame.mouse.get_pos()[1] < 393:
round_number += 1
if round_number >= 3:
if check_win(board) != "No winner" and check_win(board) != "tie":
message = f"The winner is {check_win(board)}!"
message_display(message)
pygame.display.update()
playing = False
elif check_win(board) == "tie":
message_display("Game is tied...")
pygame.display.update()
playing = False
Lapin76
pygame.event.get()
renvoie une liste d'événements et les supprime de la file d'attente.
Vous devez gérer la liste en boucle, sinon vous manquerez des événements:
par exemple
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()