¿Por qué mi aplicación PyGame no se está ejecutando?

Dec 12 2020

Tengo un programa Pygame simple:

#!/usr/bin/env python

import pygame
from pygame.locals import *

pygame.init()

win = pygame.display.set_mode((400,400))
pygame.display.set_caption("My first game")

Pero cada vez que intento ejecutarlo, obtengo esto:

pygame 2.0.0 (SDL 2.0.12, python 3.8.3)
Hello from the pygame community. https://www.pygame.org/contribute.html

Y luego no pasa nada. ¿Por qué no puedo ejecutar este programa?

Respuestas

4 Rabbid76 Dec 12 2020 at 19:11

Tu aplicación funciona bien. Sin embargo, no ha implementado un ciclo de aplicación:

#!/usr/bin/env python

import pygame
from pygame.locals import *

pygame.init()

win = pygame.display.set_mode((400,400))
pygame.display.set_caption("My first game")
clock = pygame.time.Clock()

run = True
while run:
    clock.tick(60)
    
    # handle events
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    # update game objects
    # [...]

    # clear display
    win.fill((0, 0, 0))

    # draw game objects
    # [...]

    # update display
    pygame.display.flip()

pygame.quit()

El bucle típico de la aplicación PyGame tiene que:

  • manejar los eventos mediante pygame.event.pump()o pygame.event.get().
  • actualizar los estados del juego y las posiciones de los objetos dependiendo de los eventos de entrada y el tiempo (respectivamente fotogramas)
  • borrar toda la pantalla o dibujar el fondo
  • dibuja toda la escena ( blittodos los objetos)
  • actualizar la pantalla mediante pygame.display.update()opygame.display.flip()

Ver también Bucle de eventos y aplicaciones