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
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to