Thanks you guys!  The workaround seems to do the trick.

On Thu, Sep 23, 2010 at 9:13 AM, Lenard Lindstrom <le...@telus.net> wrote:

> Hi,
>
> Yes, it looks like a bug. But there may be a simple workaround. Try replace
> line 68 with this:
>
>    myFont = pygame.font.Font(None, 20)
>
> If that fails then possibly the default font that ships with Pygame is not
> being installed in the proper place.
>
> Lenard Lindstrom
>
> On 23/09/10 06:30 AM, kevin hayes wrote:
>
>> 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 <
>> http://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 
>> <rabidpoob...@gmail.com<mailto:
>> rabidpoob...@gmail.com>> 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 <kevino...@gmail.com
>>    <mailto:kevino...@gmail.com>> 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 = pygame.image.load("painting.bmp")
>>    >     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 = pygame.Surface(screen.get_size())
>>    >     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
>>
>>
>>
>

Reply via email to