示例#1
0
    def lose(self, wait=5.0, duration=2.0):
        if self.lost:
            return

        def adjustMusicVol(vol):
            self.musicManager.setVolume(vol)

        def adjustSfxVol(vol):
            self.sfxManagerList[0].setVolume(vol)

        from direct.gui.DirectGui import OnscreenText, DGG
        from direct.interval.IntervalGlobal import Parallel, Sequence, Wait, LerpFunc, Func
        fadeIval = base.transitions.getFadeOutIval(duration)
        diedText = OnscreenText(text="You failed to save Flippy!\nYou lose!",
                                fg=(1, 1, 1, 1))
        diedText.reparentTo(aspect2d, DGG.FADE_SORT_INDEX + 1)
        diedText.setAlphaScale(0)
        textFadeIval = diedText.colorScaleInterval(duration, (1, 1, 1, 1),
                                                   (1, 1, 1, 0))
        Sequence(
            Wait(wait),
            Parallel(
                fadeIval, textFadeIval,
                LerpFunc(adjustMusicVol, duration,
                         self.musicManager.getVolume(), 0.0),
                LerpFunc(adjustSfxVol, duration,
                         self.sfxManagerList[0].getVolume(), 0.0)),
            Func(self.leaveGame)).start()

        self.lost = True