so I get this error when I try to run my pygame code: pygame.error: video system not initialized
i specify where the wing IDE tells me it is in the code below
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
I had this issue recently, and I discovered a strange and unusual bug in the code that I'd written -- only after reading it and re-reading it a dozen times over a 10 minute stretch, trying to launch the file (which looked perfect) a dozen times.
There was
pygame.init()
. There wasscreen = pygame.display.set_mode((size))
with the variable size in position to be available in the global namespace.Turns out it was the main game loop.
What a pain!
P.S. The problem is the one-stop-too-far indentation of everything below
RUNNING = False
.You haven't called
pygame.init()
anywhere.See the basic Intro tutorial, or the specific Import and Initialize tutorial, which explains:
In your particular case, it's probably
pygame.display
that's complaining that you called either itsset_caption
or itsflip
without calling itsinit
first. But really, as the tutorial says, it's better to justinit
everything at the top than to try to figure out exactly what needs to be initialized when.You have to add:
Before you quit the display you should stop the while loop.
You get an error because you try to set the window title (with
set_caption()
) but you haven't created a pygame window, so yourscreen
variable is just a tuple containing the size of your future window.To create a pygame window, you have to call
pygame.display.set_mode(windowSize)
.Good luck :)