def __init__(self): self.loadingscreen = LoadingScreen() self.loadingscreen.show() self.gameoverscreen = GameOverScreen() self.level = Level01() self.loadingscreen.setLoadingValue(10) self.player = Player() self.loadingscreen.setLoadingValue(15) self.golem = Golem() self.loadingscreen.setLoadingValue(20) self.msgWriter = MessageWriter() self.loadingscreen.setLoadingValue(25) self.hud = PlayerHUD() self.loadingscreen.setLoadingValue(30) self.musicAmbient = loader.loadMusic("MayanJingle1_Ambient.ogg") self.musicAmbient.setLoop(True) self.musicAmbient.setVolume(1.0) self.musicFight = loader.loadMusic("MayanJingle3_Fight.ogg") self.musicFight.setLoop(True) self.musicFight.setVolume(1.0) self.musicGameOver = loader.loadMusic("MayanJingle5_GameOver.ogg") self.musicGameOver.setVolume(1.0) self.puzzleSolved = loader.loadSfx("MayanJingle4_PuzzleSolved.ogg") self.getItem = loader.loadSfx("MayanJingle2_GetItem.ogg") self.loadingscreen.setLoadingValue(40)
def postInit(self): # # initialize game content # # Menus self.mainmenu = Mainmenu() self.optionsmenu = Optionsmenu() self.loadingscreen = LoadingScreen() self.music_menu = loader.loadMusic("music/menu.ogg") self.music_menu.setLoop(True) self.music_game = loader.loadMusic("music/game.ogg") self.music_game.setLoop(True) self.music_intro = loader.loadMusic("music/logos.ogg") # The games Intro def create16To9LogoCard(logoPath, tsName): cm = CardMaker("fade") scale = abs(base.a2dLeft) / 1.7776 cm.setFrame(-1, 1, -1 * scale, 1 * scale) logo = NodePath(cm.generate()) logo.setTransparency(TransparencyAttrib.MAlpha) logoTex = loader.loadTexture(logoPath) logoTs = TextureStage(tsName) logoTs.setMode(TextureStage.MReplace) logo.setTexture(logoTs, logoTex) logo.setBin("fixed", 5000) logo.reparentTo(render2d) logo.hide() return logo self.gfLogo = create16To9LogoCard("intro/GrimFangLogo.png", "gfLogoTS") self.pandaLogo = create16To9LogoCard("intro/Panda3DLogo.png", "pandaLogoTS") self.gameLogo = create16To9LogoCard("intro/GameLogo.png", "gameLogoTS") def createFadeIn(logo): return LerpColorScaleInterval(logo, 2, LVecBase4f(0.0, 0.0, 0.0, 1.0), LVecBase4f(0.0, 0.0, 0.0, 0.0)) def createFadeOut(logo): return LerpColorScaleInterval(logo, 2, LVecBase4f(0.0, 0.0, 0.0, 0.0), LVecBase4f(0.0, 0.0, 0.0, 1.0)) gfFadeInInterval = createFadeIn(self.gfLogo) gfFadeOutInterval = createFadeOut(self.gfLogo) p3dFadeInInterval = createFadeIn(self.pandaLogo) p3dFadeOutInterval = createFadeOut(self.pandaLogo) gameFadeInInterval = createFadeIn(self.gameLogo) gameFadeOutInterval = createFadeOut(self.gameLogo) self.introFadeInOutSequence = Sequence(Func(self.music_intro.play), Func(self.gfLogo.show), gfFadeInInterval, Wait(1.0), gfFadeOutInterval, Wait(0.5), Func(self.gfLogo.hide), Func(self.pandaLogo.show), p3dFadeInInterval, Wait(1.0), p3dFadeOutInterval, Wait(0.5), Func(self.pandaLogo.hide), Func(self.gameLogo.show), gameFadeInInterval, Wait(1.0), gameFadeOutInterval, Wait(0.5), Func(self.gameLogo.hide), Func(self.messenger.send, "intro_done"), Func(self.music_intro.stop), name="fadeInOut") # game intro end # collision setup base.cTrav = CollisionTraverser("base collision traverser") base.cTrav.setRespectPrevTransform(True) # setup default physics base.enableParticles() # # Event handling # self.accept("escape", self.__escape) # accept menu events self.accept("menu_start", self.request, ["Game"]) self.accept("menu_options", self.request, ["Options"]) self.accept("menu_quit", self.quit) self.accept("options_back", self.request, ["Menu"]) # game over self.accept("GameOver", self.demand, ["Menu"]) # # Start with the menu after the intro has been played # self.introFadeInOutSequence.start() self.accept("intro_done", self.request, ["Menu"])