On 07/19/2010 01:12 AM, SurferIX wrote:
Hi!
I'm using pygame for the first time.
I've developped a game, everything works fine but one thing I can't
explain.
Using Windows, python 2.6, here's what I was doing:
18 class Shape(pygame.sprite.Sprite):
20 def __init__(self,width,height):
21 pygame.sprite.Sprite.__init__(self)
23 self.width = width
24 self.height = height
27 self.rect = pygame.Rect(0, 0, 6*5*20, 6*5*20)
28 self.image = pygame.Surface( (self.rect.width,
self.rect.height) )
29 self.image.fill((255, 255, 255))
30 self.image.convert()
the line #30 was *always* generating access violation.
I just added modified to:
30 self.image = self.image.convert()
and now everything works fine.
But there shouldn''t have any problem at all with this simple line:
30 self.image.convert()
even though it does nothing (well i guess it does nothing).
I'm not the kind of people who thinks "it works let's go on". I want
to understand why it didn't work before going further. Can someone
please explain me why this raised an Access Violation?
I can't explain the access error. But you'll want line 30 to look like this.
self.image = self.image.convert()
You may try changing the code and seeing if it still dies. There may be
a bug in Pygame triggered when the newly converted image is immediately
deleted. (although that does not seem likely)