On 4 Jan 2013, at 19:20, Francesco Loffredo <f...@libero.it> wrote:
> Ciaran Mooney wrote: >> Thanks for the feedback. >> >> Steve, If I set the FPS to a default of say 30, the game seems to run at >> this default FPS=30 regardless of the key pressed in the function. >> >> Dave, If I remove the the default value at the start of the function and add >> it to elif in the loop I get the following error: >> >> >> Traceback (most recent call last): >> File "/Users/callanmooneys/Desktop/Pythoin Programmes/Aliens Game/dodger >> ver 3 instructons.py", line 139, in <module> >> FPS = difficultyLevel() >> File "/Users/callanmooneys/Desktop/Pythoin Programmes/Aliens Game/dodger >> ver 3 instructons.py", line 50, in difficultyLevel >> return FPS >> UnboundLocalError: local variable 'FPS' referenced before assignment >> >> >> I wondered if i could set FPS to nether a string or integer and just declare >> it by setting FPS=None but I get the following error: >> >> Traceback (most recent call last): >> File "/Users/callanmooneys/Desktop/Pythoin Programmes/Aliens Game/dodger >> ver 3 instructons.py", line 301, in <module> >> mainClock.tick(FPS) >> TypeError: a float is required >> >> Cheers >> Ciaran > As far as I understood your problem, it seems that you need the difficulty > level to be changed at the player's will during the game. In this case, the > function gets called many times, maybe at every game loop. If this is true, > you need a global FPS value to be changed by the player's choice, not one > that you create inside the function. > > Try this: > > # put the line below out of the function definition and out of the game loop, > usually together with other default program settings > FPS = 30 # you want the game to be beginner-friendly, don't you? > > def difficultyLevel(): > global FPS > windowSurface = pygame.display.set_mode((WINDOWWIDTH, > WINDOWHEIGHT),pygame.FULLSCREEN) > windowSurface.fill(BACKGROUNDCOLOUR) > drawText('LEVEL OF PLAY', font3, windowSurface, (WINDOWWIDTH/6), > (WINDOWHEIGHT/6)) > drawText('B: Your an absoulute Begineer', font3, windowSurface, > (WINDOWWIDTH/6)-100, (WINDOWHEIGHT/6)+100) > drawText('M: Not Too Snazy', font3, windowSurface, (WINDOWWIDTH/6)-100, > (WINDOWHEIGHT/6)+150) > drawText('H: Deathwish' ,font3,windowSurface, (WINDOWWIDTH/6)-100, > (WINDOWHEIGHT/6)+200) > pygame.display.update() > > for event in pygame.event.get(): > if event.type == QUIT: > terminate() > > if event.type == KEYDOWN: > if event.key == ord('b'): > FPS = 30 > elif event.key == ord('m'): > FPS = 70 > elif event.key == ord('h'): > FPS = 120 > > return FPS > > ... then let us know. > Hope that helps > > Francesco Thanks Francesco, Ill give it a go and come back to u. Ciaran > _______________________________________________ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > http://mail.python.org/mailman/listinfo/tutor
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor