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

Re: [pygame] program crashes



Well I put part of the traceback into google and apparently some other people have had the same problem: www.pyedpypers.org/forum/viewtopic.php?f=3&t=937....his solution was to use a different version of python. The thing is that I'm using Python 2.5 just like the book, and I'm using pygame 1.9.1release-py2.5 which is for python 2.5! 
On Thu, Sep 23, 2010 at 5:38 AM, LukePaireepinart <rabidpoobear@xxxxxxxxx> wrote:
Looks to me like you either found a bug in the core pygame code for loading the system font on Mac or you are calling that method wrong. I checked the method and it seems like you should be able to do what you're doing; it shouldn't find a sysfont called none so it should load the default.
If no one else gets around to it, I'll give it a test on my Mac after work and let you know.

-----------------------------
Sent from a mobile device with a bad e-mail client.
-----------------------------

On Sep 23, 2010, at 6:41 AM, kevin hayes <kevinosky@xxxxxxxxx> wrote:

> Can someone tell me what to do (or what I need to get) to get this program to work properly?
> When I run the code(straight out of the book), I get this:
>
> Traceback (most recent call last):
>   File "/Users/kevinhayes/Desktop/code/ch05/paint.py", line 107, in <module>
>     main()
>   File "/Users/kevinhayes/Desktop/code/ch05/paint.py", line 102, in main
>     myLabel = showStats(drawColor, lineWidth)
>   File "/Users/kevinhayes/Desktop/code/ch05/paint.py", line 67, in showStats
>     myFont = pygame.font.SysFont("None", 20)
>   File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/pygame/sysfont.py", line 555, in SysFont
>     initsysfonts()
>   File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/pygame/sysfont.py", line 522, in initsysfonts
>     fonts = initsysfonts_darwin()
>   File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/pygame/sysfont.py", line 422, in initsysfonts_darwin
>     _search_osx_font_paths(fonts)
> UnboundLocalError: local variable 'fonts' referenced before assignment
>
>
>
> ********************************
>
> here is the code:
>
> """ paint.py
>     a simple paint program"""
>
> import pygame
>
> def checkKeys(myData):
>     """test for various keyboard inputs"""
>
>     #extract the data
>     (event, background, drawColor, lineWidth, keepGoing) = myData
>     #print myData
>
>     if event.key == pygame.K_q:
>         #quit
>         keepGoing = False
>     elif event.key == pygame.K_c:
>         #clear screen
>         background.fill((255, 255, 255))
>     elif event.key == pygame.K_s:
>         #save picture
>         pygame.image.save(background, "painting.bmp")
>     elif event.key == pygame.K_l:
>         #load picture
>         background = ""> >     elif event.key == pygame.K_r:
>         #red
>         drawColor = (255, 0, 0)
>     elif event.key == pygame.K_g:
>         #green
>         drawColor = (0, 255, 0)
>     elif event.key == pygame.K_w:
>         #white
>         drawColor = (255, 255, 255)
>     elif event.key == pygame.K_b:
>         #blue
>         drawColor = (0, 0, 255)
>     elif event.key == pygame.K_k:
>         #black
>         drawColor = (0, 0, 0)
>
>     #line widths
>     elif event.key == pygame.K_1:
>         lineWidth = 1
>     elif event.key == pygame.K_2:
>         lineWidth = 2
>     elif event.key == pygame.K_3:
>         lineWidth = 3
>     elif event.key == pygame.K_4:
>         lineWidth = 4
>     elif event.key == pygame.K_5:
>         lineWidth = 5
>     elif event.key == pygame.K_6:
>         lineWidth = 6
>     elif event.key == pygame.K_7:
>         lineWidth = 7
>     elif event.key == pygame.K_8:
>         lineWidth = 8
>     elif event.key == pygame.K_9:
>         lineWidth = 9
>
>     #return all values
>     myData = (event, background, drawColor, lineWidth, keepGoing)
>     return myData
>
> def showStats(drawColor, lineWidth):
>     """ shows the current statistics """
>     myFont = pygame.font.SysFont("None", 20)
>     stats = "color: %s, width: %d" % (drawColor, lineWidth)
>     statSurf = myFont.render(stats, 1, (drawColor))
>     return statSurf
>
> def main():
>     pygame.init()
>     screen = pygame.display.set_mode((640, 480))
>     pygame.display.set_caption("Paint:  (r)ed, (g)reen, (b)lue, (w)hite, blac(k), (1-9) width, (c)lear, (s)ave, (l)oad, (q)uit")
>
>     background = ""> >     background.fill((255, 255, 255))
>
>     clock = pygame.time.Clock()
>     keepGoing = True
>     lineStart = (0, 0)
>     drawColor = (0, 0, 0)
>     lineWidth = 3
>
>     while keepGoing:
>         clock.tick(30)
>
>         for event in pygame.event.get():
>             if event.type == pygame.QUIT:
>                 keepGoing = False
>             elif event.type == pygame.MOUSEMOTION:
>                 lineEnd = pygame.mouse.get_pos()
>                 if pygame.mouse.get_pressed() == (1, 0, 0):
>                     pygame.draw.line(background, drawColor, lineStart, lineEnd, lineWidth)
>                 lineStart = lineEnd
>             elif event.type == pygame.KEYDOWN:
>                 myData = (event, background, drawColor, lineWidth, keepGoing)
>                 myData = checkKeys(myData)
>                 (event, background, drawColor, lineWidth, keepGoing) = myData
>         screen.blit(background, (0, 0))
>         myLabel = showStats(drawColor, lineWidth)
>         screen.blit(myLabel, (450, 450))
>         pygame.display.flip()
>
> if __name__ == "__main__":
>     main()
>
> ***********************************************************************************
>
> I'm using python 2.5 and pygame-1.9.1release-py2.5 on Mac osx 10.4.11...any help would be appreciated.  Thanks. Kevin