On 21/12/12 07:40, Ciaran Mooney wrote:
def difficultyLevel():
FPS = ''
Here you set the variable FPS to the empty string.
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
These three options set FPS to an integer value. But notice that if the user
does not press one of the b m or h keys, FPS never gets changed so it still
has the initial value of the empty string.
return FPS
The function is then called and FPS converted too a integer value in the main
game loop as follows:
FPS = int(difficultyLevel())
However I keep getting the following error:
ValueError: invalid literal for int() with base 10: ''
There are three possible values that difficultyLevel() may return:
* if the user hits the 'h' key, it returns the integer value 120;
* if the user hits the 'm' key, it returns the integer value 70;
* if the user hits the 'b' key, it returns the integer value 30;
* otherwise, it returns the empty string.
Three of the four values are already ints and don't need to be converted;
the fourth cannot be converted because it is not a numeric string.
To fix this, change the line FPS = '' to a default integer value,
say, FPS = 30.
--
Steven
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor