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 >> >> >> >