Beispiel #1
0
class Menu(Frame):
    """
    DOC
    """
    def __init__(self):
        self.game = None #
        self.playCount = 0
        #Make the loading screen call loadGame for us
        loadscreen = LoadingScreen (self)
        self.logo = TgaTexture("media/pyCaveMenu.tga")
        self.logo.newGLTexture()

        music.new_music("media/pycave.mp3")
        music.play()
        if pyCaveOptions['mute']:
            music.mute()
        #MENU ITEMS------------------------------
        self.helpMenu= HelpScreen(self)
        self.hscores = HighScores(self)
        self.asker = AskName(self)
        
        self.buttonList = [
            ((133,166), #Start
             362,
             201,self.startGame),
            ((129, 239), #Help
             201,
             279,self.helpMenu.getControl),
            ((128, 321), #Mute
             316,
             353,self.toggleMute),
            ((129, 395), #Exit
             199,
             429,exit),
            ((129,470),#highscores
             293,
             505,self.hscores.getControl)
            ]
        
    def loadGame (self):
        self.game = Renderer(self)

    def startGame(self):
        self.playCount+=1
        music.stop()
        self.game.gameplay.clean()
        self.game.gameplay.start()
        self.game.getControl()
        
        
    def toggleMute(self):
        music.mute()
        
    def display(self):
        displayFullWindowTexture(self.logo)
        #glutSwapBuffers()

    def keyboard(self,key,x,y):
        if ord(key) == 27: #esc
            if self.game.gameplay.playing:
                if self.game.gameplay.paused:
                    self.game.gameplay.togglePause()
                music.stop()
                self.game.getControl()
            else: #Not playing and pressed esc
                print 'You played',self.playCount,'times.'
                exit()
            
    def mouse(self,button,st,x,y):
        if st == GLUT_UP:
            checkButtons(self.buttonList,x,y)
        if pyCaveOptions['debug']:
            pass

    def getControl(self):
        Frame.getControl(self)
        glutPostRedisplay()
        music.play()
                
    def idle(self):
        glutPostRedisplay()