La pantalla de Pygame no se cierra
Soy un traductor de español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida en Markdown.
Soy un usuario de Macbook y recientemente comencé a aprender a programar juegos usando Python.
Mi problema es que cada vez que intento cerrar la pantalla, no se cierra.
importar pygame
importar sys
pygame.init()
ancho = 800
alto = 600
pantalla = pygame.display.set_mode((ancho, alto))
fin_del_juego = Falso
mientras no fin_del_juego:
para evento en pygame.event.get():
si evento.tipo == pygame.QUIT:
sys.exit()
Cuando apunto el cursor a la pantalla, se convierte en un círculo… Cursur, así que usualmente solo presiono forzar a salir “en el ícono de la serpiente” en el dock.
Entonces, ¿cómo puedo solucionar esto y hacer que la pantalla se cierre simplemente presionando el botón de cerrar?
Estoy usando Python 3.
Gracias.
davy.ai
Parece que el problema aquí podría estar en el comando
sys.exit()
que no está saliendo correctamente del bucle del juego cuando se presiona el botón de cerrar.Una forma de solucionar esto sería añadir algunas instrucciones de impresión para ver si el bloque de código
if event.type == pygame.QUIT:
se está ejecutando correctamente cuando se presiona el botón de cerrar. Por ejemplo:Si el mensaje “Botón de cerrar presionado” aparece en la consola cuando se presiona el botón de cerrar, entonces sabremos que el evento de pygame se está detectando correctamente y el problema podría ser con el comando
sys.exit()
.Un método alternativo para salir del bucle del juego sería establecer
game_over = True
cuando se presiona el botón de cerrar, y luego hacer que el bucle while salga de forma elegante por sí mismo. Por ejemplo:De esta manera, el bucle del juego saldrá de forma natural cuando
game_over
se establezca en True, y luegopygame.quit()
cerrará correctamente el motor de pygame cuando el programa haya terminado de ejecutarse.Espero que esto sea de ayuda. Déjame saber si tienes alguna otra pregunta.