On 12/20/2012 04:34 PM, 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 > Please don't top-post. Your message is now out of order with whatever you're quoting below.
You don't show your new version of code, but clearly, your else is NOT in the right place. If it were, then there would be no way that FPS would be undefined. And this is exactly why it's a good thing to use else rather than defining FPS at the top. The error message shows you your error, or at lest makes you think more about the problem. You have a for-loop here. Is it possible that it's not executing at all? If so, what value do you want for FPS? Do you just want to wait till the user causes SOME event? or what? And what about if you go around the loop multiple times? Do you want the last value of FPS, or the first? Assuming you want to take the first matching event that's waiting, you could do this. The breaks get you out of the loop for event in pygame.event.get(): if event.type == QUIT: terminate() if event.type == KEYDOWN: if event.key == ord('b'): FPS = 30 break elif event.key == ord('m'): FPS = 70 break elif event.key == ord('h'): FPS = 120 break else: FPS = 30 #default value return FPS This doesn't address the problem of the user not being fast enough at hitting that key. Perhaps you want to wait till he hits something, or till a timeout has passed, or something? Without a clear spec in your head, the fact that we could help you get your code to not crash is not the same as getting it right. -- DaveA _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor