[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] pygame parachute and inconsistent interned sting state - but only on Slackware 13.0 32 bit





On Wed, Sep 16, 2009 at 3:15 PM, Peter Chant <pete@xxxxxxxxxxxxxxx> wrote:
On Wednesday 16 September 2009, René Dudfield wrote:
> I guess the next step is to try and put print debugging in.
>
> You start by putting a few print statements in, and see where it gets
> up to.  Then you refine until you get really close to it... doing a
> binary search of your source until you find the place/places that make
> it crash.
>

D'oh so obvious.  What I regularly do whilst developing things, but not when
bugs suddenly appear.

FOUND IT!
    self.screen.blit(clear,(0,0))


 - look for the exclamation marks

   def clearScreen(self):
       print "In clearScreen"
       print "About to call pygame.display_get_surface()"
       clear = pygame.display.get_surface()
       print "About to fill surface to clear it"
       clear.fill((0,0,0))
       print "About to self.screen.blit - !!!! this crashes"
       self.screen.blit(clear,(0,0))
       print "just blitted - !!!!! does not get to here"


self.screen is initialised by the output of another class.
 self.screen = h.screen

in class h

 self.screen=pygame.display.get_surface()


Only fails on 32 bit Slack 13.0.



--
Peter Chant

so functionally

surf = pygame.dispay.get_surface()
surf.fill((0,0,0))
surf.blit(surf,(0,0))

fails.

From your app point of view, the blit line is superfluous.

your code will be

def clearScreen(self):
    self.screen.fill((0,0,0))

From the pygame point of view, there is a possible bug, there is a bug: it should work or it should raise some meaningful error.

--
claxo