Is the entirety of your code in your __init__ class?
I'm not sure if the spacing got mangled in the e-mail but the way it came
across when I cut and pasted the class into my editor is that your while
loop is in the main Class, not in the __init__ function. Since the class
gets created before the __init__ is called that's what's causing your
problem.
On 9/26/07, Eric Hunter <[EMAIL PROTECTED]> wrote:
>
> can't understand why I'm getting this error. everything looks okay to me.
> but then again I'm a newbie. thanks in advance.
>
> Traceback (most recent call last):
> File "las.py", line 54, in <module>
> class PygameClass():
> File "las.py", line 78, in PygameClass
> for event in pygame.event.get():
> pygame.error: video system not initialized
>
>
>
> [code]
> class PygameClass():
> # Starts Pygame
> def __init__(self, full_path):
> pygame.init()
> self.window = pygame.display.set_mode((1,1), pygame.RESIZABLE)
>
> self.image_name = os.path.basename(full_path)
> pygame.display.set_caption(self.image_name)
> self.image = pygame.image.load(full_path)
> self.image = self.image.convert()
> self.image_rect = self.image.get_rect()
> print self.image_rect
> print self.image_rect.width
> print self.image_rect.height
> self.window = pygame.display.set_mode((self.image_rect.width,
> self.image_rect.height))
> self.window = self.window.convert()
>
> self.point_draw = 1
> self.numRect = 0
> rect = {}
>
> self.screen.blit(self.image, (0, 0))
> pygame.display.flip()
>
> while True:
> for event in pygame.event.get():
> if self.event.type == QUIT:
> pygame.quit()
> sys.exit()
>
> elif self.event.type == pygame.KEYDOWN:
> if self.event.key == K_s:
> self.out_file = open("text.txt", "w")
> pickle.dump(rect, self.out_file)
> print "memory dumped."
> self.out_file.close()
> if self.event.key == K_o:
> self.in_file = open('text.txt', 'r')
> rect = pickle.load(self.in_file )
> print "memory loaded."
> self.in_file.close()
>
> elif self.event.type == pygame.MOUSEBUTTONDOWN:
> if self.event.button == 1:
> # If point_draw = 1, get x,y of mouse
> if self.point_draw == 1:
> self.mouseX1, self.mouseY1 = pygame.mouse.get_pos
> ()
> self.point_draw = 2
> else:
> # If point_draw = 2, get x,y of mouse, make a rect
> and throw it in a dictionary
> self.mouseX2, self.mouseY2 = pygame.mouse.get_pos
> ()
> self.numRect += 1
> self.newRect = pygame.Rect(self.mouseX1,
> self.mouseY1, self.mouseX2 - self.mouseX1, self.mouseY2 - self.mouseY1)
> rect[self.numRect ] = self.newRect
> self.point_draw = 1
> elif self.event.button == 3:
> self.mouseXTEMP, self.mouseYTEMP =
> pygame.mouse.get_pos()
> for self.x in rect.keys():
> if rect[self.x].collidepoint(self.mouseXTEMP,
> mself.ouseYTEMP):
> del rect[x]
> self.numRect -= 1
>
> # draws the rectangles in the rect{}
> for self.x in rect.keys():
> pygame.draw.rect(window, ((255, 255, 0)), rect[self.x], 1)
>
> pygame.display.flip()
>
> [/code]
>