pygame.error: sistema de video no inicializado

así que recibo este error cuando bash ejecutar mi código de pygame: pygame.error: el sistema de video no está inicializado

Especifico donde el IDE del ala me dice que está en el código de abajo

import os import sys import math import pygame import pygame.mixer from pygame.locals import * black = 0,0,0 white = 255,255,255 red = 255,0,0 green = 0,255,0 blue = 0,0,255 screen = screen_width, screen_height = 600, 400 clock = pygame.time.Clock() pygame.display.set_caption("Physics") fps_cap = 120 running = True while running: clock.tick(fps_cap) for event in pygame.event.get(): #error is here if event.type == pygame.QUIT: running = False screen.fill(white) pygame.display.flip() pygame.quit() sys.exit #!/usr/bin/env python 

No has llamado a pygame.init() ningún lado.

Consulte el tutorial básico de introducción , o el tutorial específico de importación e inicialización , que explica:

Antes de que puedas hacer mucho con pygame, necesitarás inicializarlo. La forma más común de hacer esto es simplemente hacer una llamada.

 pygame.init() 

Esto intentará inicializar todos los módulos de pygame por ti. No es necesario inicializar todos los módulos de pygame, pero esto inicializará automáticamente los que lo hacen. También puedes inicializar fácilmente cada módulo de pygame a mano. Por ejemplo, para solo inicializar el módulo de fuente que acaba de llamar.

En tu caso particular, es probable que sea pygame.display que se queje de que set_caption su set_caption o su flip sin llamar primero a su init . Pero realmente, como dice el tutorial, es mejor simplemente init todo en la parte superior que tratar de averiguar exactamente qué se necesita inicializar cuando.

set_caption() un error porque intentas establecer el título de la ventana (con set_caption() ) pero no has creado una ventana de pygame, por lo que tu variable de screen es solo una tupla que contiene el tamaño de tu ventana futura.

Para crear una ventana de pygame, debes llamar a pygame.display.set_mode(windowSize) .

Buena suerte 🙂

Tuve este problema recientemente, y descubrí un error extraño e inusual en el código que había escrito, solo después de leerlo y releerlo una docena de veces en un tramo de 10 minutos, tratando de iniciar el archivo (que parecía perfecto) una docena de veces.

Había pygame.init() . Hubo screen = pygame.display.set_mode((size)) con el tamaño variable en posición para estar disponible en el espacio de nombres global.

Resulta que era el bucle principal del juego.

 # main game loop while RUNNING == True: for tneve in pygame.event.get(): if tneve.type == QUIT: print(tneve) RUNNING = False loop() render() CLOCK.tick(FPS) cleanup() # End 

¡Que dolor!

PS El problema es la sangría de una sola parada demasiado lejos de todo lo que está debajo de RUNNING = False .