Esempio n. 1
0
class Menu(object):
    def __init__(self, main):
        self.main = main
        wx = base.win.get_x_size()
        wy = base.win.get_y_size()
        kx = 1600
        ky = 900
        self.myFrame = DirectFrame(frameColor=(1, 1, 1, 1),
                                   frameSize=(0, kx, 0, ky))

        menu_tex = loader.loadTexture("res/menu.png")
        menu_tex.set_minfilter(SamplerState.FT_nearest)
        menu_tex.set_magfilter(SamplerState.FT_linear)
        self.myFrame["frameTexture"] = menu_tex
        self.myFrame.reparentTo(base.pixel2d)
        self.myFrame.set_pos((wx - kx) / 2, 0, -(wy + ky) / 2)
        self.myFrame.set_transparency(True)

        self.startButton = DirectButton(text="",
                                        text_scale=1.0,
                                        text_fg=(0.2, 0.2, 0.2, 1),
                                        frameTexture="res/start.png",
                                        frameColor=(1, 1, 1, 1),
                                        frameSize=(-64, 64, -20, 20),
                                        command=self.main.startGame,
                                        relief=DGG.FLAT,
                                        rolloverSound=None,
                                        clickSound=None,
                                        parent=self.myFrame,
                                        scale=2.0,
                                        pos=(wx / 2, 0, wy / 2 + 50))
        self.startButton.setTransparency(1)

        self.exitButton = DirectButton(text="",
                                       text_scale=1.0,
                                       text_fg=(0.2, 0.2, 0.2, 1),
                                       frameTexture="res/exit.png",
                                       frameColor=(1, 1, 1, 1),
                                       frameSize=(-64, 64, -20, 20),
                                       relief=DGG.FLAT,
                                       command=exit,
                                       rolloverSound=None,
                                       clickSound=None,
                                       parent=self.myFrame,
                                       scale=2.0,
                                       pos=(wx / 2, 0, wy / 2 - 50))
        self.exitButton.setTransparency(1)

        self.resumeButton = DirectButton(text="",
                                         text_scale=1.0,
                                         text_fg=(0.2, 0.2, 0.2, 1),
                                         frameTexture="res/resume.png",
                                         frameColor=(1, 1, 1, 1),
                                         frameSize=(-64, 64, -20, 20),
                                         relief=DGG.FLAT,
                                         command=self.main.resumeGame,
                                         rolloverSound=None,
                                         clickSound=None,
                                         parent=self.myFrame,
                                         scale=2.0,
                                         pos=(wx / 2, 0, wy / 2 + 150))

        self.resumeButton.setTransparency(1)
        self.resumeButton.hide()

    def hideMenu(self):
        self.main.gui.show()
        seq = Sequence(LerpColorScaleInterval(self.myFrame, 0.4, (1, 1, 1, 0)),
                       Func(self.myFrame.hide))
        seq.start()

    def hideResume(self):
        seq = Sequence(
            LerpColorScaleInterval(self.resumeButton, .5, (1, 1, 1, 0)),
            Func(self.resumeButton.hide))
        seq.start()

    def showResume(self):
        self.resumeButton.show()
        seq = Sequence(
            LerpColorScaleInterval(self.resumeButton, .5, (1, 1, 1, 1)))
        seq.start()

    def showMenu(self):
        self.myFrame.show()
        self.main.gui.hide()
        seq = Sequence(LerpColorScaleInterval(self.myFrame, .5, (1, 1, 1, 1)))
        seq.start()
Esempio n. 2
0
class Menu(object):
    def __init__(self, main):
        self.main = main

        wx = base.win.get_x_size()
        wy = base.win.get_y_size()
        kx = 1920
        ky = 1080
        self.myFrame = DirectFrame(frameColor=(1, 1, 1, 1),
                                   frameSize=(0, kx, 0, ky))

        menu_tex = loader.loadTexture("res/menu.png")
        menu_tex.set_minfilter(SamplerState.FT_nearest)
        menu_tex.set_magfilter(SamplerState.FT_linear)
        self.myFrame["frameTexture"] = menu_tex
        self.myFrame.reparentTo(base.pixel2d)
        self.myFrame.set_pos((wx - kx) / 2, 0, -(wy + ky) / 2)
        self.myFrame.set_transparency(True)

        self.startButton = DirectButton(text="",
                                        text_scale=1.0,
                                        text_fg=(0.2, 0.2, 0.2, 1),
                                        frameTexture="res/start_game.png",
                                        frameColor=(1, 1, 1, 1),
                                        frameSize=(-64, 64, -20, 20),
                                        command=self.main.startGame,
                                        relief=DGG.FLAT,
                                        rolloverSound=None,
                                        clickSound=None,
                                        parent=self.myFrame,
                                        scale=2.0,
                                        pos=(wx / 2 + 160, 0, wy / 2 + 50))
        self.startButton.setTransparency(1)

        self.exitButton = DirectButton(
            text=("Exit Game"),
            pos=(0, 0, -.8),
            text_scale=.1,
            frameColor=(0, 0, 0, 0),
            relief=1,
            frameVisibleScale=(2, 3),
            command=exit,
            rolloverSound=None,
            clickSound=None,
            parent=self.myFrame,
        )
        self.exitButton.setTransparency(1)

        self.resumeButton = DirectButton(
            text=("Resume"),
            pos=(.0, 0, .3),
            text_scale=.1,
            frameColor=(0, 0, 0, 0),
            relief=1,
            frameVisibleScale=(2, 3),
            command=self.main.resumeGame,
            rolloverSound=None,
            clickSound=None,
            parent=self.myFrame,
        )

        self.resumeButton.setTransparency(1)
        self.resumeButton.hide()

        self.selectFrame = DirectFrame(frameColor=(1, 1, 1, 1),
                                       frameSize=(-64, 64, -20, 20),
                                       frameTexture="res/select.png")
        self.selectFrame.setTransparency(1)
        self.selectFrame.reparentTo(self.startButton)
        self.entries = [self.exitButton, self.startButton, self.resumeButton]
        self.activeEntry = 1

    def clearKeys(self):
        base.ignore("arrow_up")
        base.ignore("arrow_down")
        base.ignore("arrow_left")
        base.ignore("arrow_right")
        base.ignore("escape")
        base.ignore("enter")

    def execSelection(self):
        self.entries[self.activeEntry]["command"]()

    def selectDown(self):
        if self.activeEntry == 0:
            self.activeEntry = len(self.entries) - 1
        else:
            self.activeEntry -= 1

        if self.entries[self.activeEntry].isHidden():
            self.selectDown()
            return
        self.selectFrame.reparentTo(self.entries[self.activeEntry])

    def selectUp(self):

        if self.activeEntry == len(self.entries) - 1:
            self.activeEntry = 0
        else:
            self.activeEntry += 1
        if self.entries[self.activeEntry].isHidden():
            self.selectUp()
            return
        self.selectFrame.reparentTo(self.entries[self.activeEntry])

    def hideMenu(self):
        self.clearKeys()
        self.main.gui.show()
        seq = Sequence(LerpColorScaleInterval(self.myFrame, 0.4, (1, 1, 1, 0)),
                       Func(self.myFrame.hide))
        seq.start()

    def hideResume(self):
        seq = Sequence(
            LerpColorScaleInterval(self.resumeButton, .5, (1, 1, 1, 0)),
            Func(self.resumeButton.hide))
        seq.start()

    def showResume(self):
        self.resumeButton.show()
        #seq= Sequence(  LerpColorScaleInterval(self.resumeButton, 1 ,(1,1,1,1)) )
        #seq.start()

    def showMenu(self):
        self.clearKeys()
        base.accept("arrow_up", self.selectUp)
        base.accept("arrow_down", self.selectDown)
        base.accept("escape", exit)
        base.accept("enter", self.execSelection)
        self.myFrame.show()
        self.main.gui.hide()
        seq = Sequence(LerpColorScaleInterval(self.myFrame, .5, (1, 1, 1, 1)))
        seq.start()
Esempio n. 3
0
class Menu(object):
    def __init__(self,main): 
        self.main=main

        wx = base.win.get_x_size()
        wy = base.win.get_y_size()
        kx = 1920
        ky = 1080
        self.myFrame = DirectFrame(frameColor=(1,1,1,1),
            frameSize=(0, kx,0, ky))

        menu_tex = loader.loadTexture("res/menu.png")
        menu_tex.set_minfilter(SamplerState.FT_nearest)
        menu_tex.set_magfilter(SamplerState.FT_linear)
        self.myFrame["frameTexture"] = menu_tex
        self.myFrame.reparentTo(base.pixel2d)
        self.myFrame.set_pos( (wx-kx) / 2, 0, -(wy+ky) / 2)
        self.myFrame.set_transparency(True)

        self.startButton = DirectButton(
                    text = "",  
                    text_scale=1.0,
                    text_fg=(0.2,0.2,0.2,1),
                    frameTexture="res/start_game.png",
                    frameColor=(1,1,1,1),
                    frameSize=(-64, 64, -20, 20),
                    command=self.main.startGame,
                    relief=DGG.FLAT,
                    rolloverSound=None,
                    clickSound=None,
                    parent=self.myFrame,
                    scale=2.0,
                    pos=(wx/2 + 160, 0, wy/2 + 50)
                    )
        self.startButton.setTransparency(1)

        self.exitButton = DirectButton(
                    text = ("Exit Game"),  
                    pos=(0,0,-.8),
                    text_scale=.1,
                    frameColor=(0,0,0,0),
                    relief=1,
                    frameVisibleScale=(2,3),
                    command=exit,
                    rolloverSound=None,
                    clickSound=None,
                    parent=self.myFrame,
                    )
        self.exitButton.setTransparency(1)
        
        self.resumeButton = DirectButton(
                    text = ("Resume"),  
                    pos=(.0,0,.3),
                    text_scale=.1,
                    frameColor=(0,0,0,0),
                    relief=1,
                    frameVisibleScale=(2,3),
                    command=self.main.resumeGame,
                    rolloverSound=None,
                    clickSound=None,
                    parent=self.myFrame,
                    )
        
        self.resumeButton.setTransparency(1)
        self.resumeButton.hide()
        
        self.selectFrame= DirectFrame( frameColor=(1,1,1,1) , frameSize=(-64, 64, -20, 20) , frameTexture="res/select.png")
        self.selectFrame.setTransparency(1)
        self.selectFrame.reparentTo(self.startButton)
        self.entries = [self.exitButton,self.startButton,self.resumeButton]
        self.activeEntry = 1


    
    
    def clearKeys(self):
        base.ignore("arrow_up")
        base.ignore("arrow_down")
        base.ignore("arrow_left")
        base.ignore("arrow_right")
        base.ignore("escape")
        base.ignore("enter")
    
    def execSelection(self):
        self.entries[self.activeEntry]["command"]()
      
        
    def selectDown(self):
        if self.activeEntry == 0:
            self.activeEntry = len(self.entries)-1
        else:
            self.activeEntry -=1
        
        if self.entries[self.activeEntry].isHidden():
            self.selectDown()
            return   
        self.selectFrame.reparentTo(self.entries[self.activeEntry])
        
    def selectUp(self):

        if self.activeEntry == len(self.entries)-1:
            self.activeEntry=0
        else:
            self.activeEntry +=1
        if self.entries[self.activeEntry].isHidden() :
            self.selectUp()
            return
        self.selectFrame.reparentTo(self.entries[self.activeEntry])

    def hideMenu(self):
        self.clearKeys()
        self.main.gui.show()
        seq= Sequence( LerpColorScaleInterval(self.myFrame, 0.4 ,(1,1,1,0)) , Func(self.myFrame.hide) )
        seq.start()
    
    def hideResume(self):
        seq= Sequence( LerpColorScaleInterval(self.resumeButton, .5 ,(1,1,1,0)) , Func(self.resumeButton.hide))
        seq.start()
     
    def showResume(self):
        self.resumeButton.show()
        #seq= Sequence(  LerpColorScaleInterval(self.resumeButton, 1 ,(1,1,1,1)) )
        #seq.start()
        
    def showMenu(self): 
        self.clearKeys()
        base.accept("arrow_up" , self.selectUp )
        base.accept("arrow_down" , self.selectDown )
        base.accept("escape", exit)
        base.accept("enter",self.execSelection)  
        self.myFrame.show()
        self.main.gui.hide()
        seq= Sequence( LerpColorScaleInterval(self.myFrame, .5 ,(1,1,1,1)) )
        seq.start()