Exemple #1
0
    def displayScreen(self):
        self.timer = 4.0 * FRAMES_PER_SECOND
        sequence = 1 * FRAMES_PER_SECOND

        while self.timer:
            self.handleEvents()

            self.screen.fill(FILL_COLOR)
            if self.music:
                utility.playMusic(self.music)
            self.timer -= 1

            self.image.draw(self.screen)

            if self.timer >= 3 * FRAMES_PER_SECOND:
                utility.dim((sequence / (1.0 * FRAMES_PER_SECOND)) * 255)
                sequence -= 1
            if self.timer <= 1 * FRAMES_PER_SECOND:
                if self.fadeImage:
                    utility.dim((sequence / (1.0 * FRAMES_PER_SECOND)) * 255)
                sequence += 1

            pygame.display.flip()

            self.clock.tick(FRAMES_PER_SECOND)
Exemple #2
0
    def gameBeat(self):
        highScore = readHighScores()
        if self.player.score < highScore[self.worldNumber]:
            worldEndDictionary = {HIGH_SCORE:["High Score For This World: " +str(highScore[self.worldNumber]), "You would need to score " + str(highScore[self.worldNumber] - self.player.score) + " more to beat it!"],
                                  NEXT_WORLD:["Credits", "On to the Credits!"]} 
        elif self.player.score == highScore[self.worldNumber]:
            worldEndDictionary = {HIGH_SCORE:["High Score For This World: " + str(highScore[self.worldNumber]), "You Tied the High Score!"],
                                  NEXT_WORLD:["Credits", "On to the Credits!"]}         
        else:
            worldEndDictionary = {HIGH_SCORE:["High Score For This World: " + str(highScore[self.worldNumber]), "You Beat the High Score!"],
                                  NEXT_WORLD:["Credits", "On to the Credits!"]}         

            highScore[self.worldNumber] = self.player.score
            writeHighScores(highScore)

        utility.dim(128,FILL_COLOR)
        worldEndMenu = menu.Menu(self.screen,
                                 self.musicList[self.worldNumber],
                                 self.screen.convert(),
                                 [0, SCREEN_HEIGHT / 3, SCREEN_WIDTH, SCREEN_HEIGHT],
                                 ["Congratulations!",64,SCREEN_WIDTH / 2, SCREEN_HEIGHT / 4],
                                 worldEndDictionary).displayMenu()

        utility.fadeMusic()
        credits.Credits(self.screen,self.musicList[MENU_MUSIC])
        
        self.done = True
Exemple #3
0
    def handleEvents(self):
        for event in pygame.event.get():
            if (event.type == KEYDOWN and event.key == K_ESCAPE) or (event.type == MOUSEBUTTONDOWN and event.button == 3) or (event.type == ACTIVEEVENT and event.gain == 0):
                utility.dim(128,FILL_COLOR)
                """takingScreenShot = True
                while takingScreenShot:
                    for shotEvent in pygame.event.get():
                        if (event.type == pygame.MOUSEBUTTONDOWN):
                            takingScreenShot = False"""

                screenGrab = self.screen.copy()
                
                pauseMenuRunning = True
                
                while pauseMenuRunning:
                    pauseMenu = menu.Menu(self.screen,
                                          self.musicList[self.worldNumber],
                                          screenGrab,
                                          [0, SCREEN_HEIGHT / 3, SCREEN_WIDTH, SCREEN_HEIGHT],
                                          ["Pause",128,SCREEN_WIDTH / 2, SCREEN_HEIGHT / 4],
                                          pauseMenuDictionary).displayMenu()
    
                    if pauseMenu == OPTION_MENU:
                        optionResult = True
                        lastHighlighted = 0
                        while optionResult:
    
                            optionMenuDictionary = {SOUND_MENU:["Sound Options", "Change Sound Options"],
                                                    DISPLAY_MENU:["Video Options" ,"Change Video Options"],
                                                    CHANGE_SENSITIVITY:["Mouse Sensitivity: " + getSensitivity(settingList[SENSITIVITY]), "Change Mouse Sensitivity"],
                                                    EXIT_OPTIONS:["Back","Go Back to the Main Menu"]}
    
                            sensitivityMenuDictionary = {0:["Very Low", "Change Sensitivty to Very Low"],
                                                         1:["Low", "Change Sensitivty to Low"],
                                                         2:["Normal", "Change Sensitivty to Normal"],
                                                         3:["High", "Change Sensitivty to High"],
                                                         4:["Very High", "Change Sensitivty to Very High"],}
                            
                            soundMenuDictionary = {TOGGLE_SFX:["Sound Effects: " + on(settingList[SFX]), "Turn " + on(not settingList[SFX]) + " Sound Effects"],
                                                    TOGGLE_MUSIC:["Music: " + on(settingList[MUSIC]),"Turn " + on(not settingList[MUSIC]) + " Music"],
                                                    EXIT_OPTIONS:["Back","Go Back to the Option Menu"]}
                            
                            displayMenuDictionary = {TOGGLE_PARTICLES:["Particles: " + able(settingList[PARTICLES]), "Turn " + on(not settingList[PARTICLES]) + " Particle Effects"],
                                                    TOGGLE_FULLSCREEN:["Video Mode: " + getScreenMode(settingList[SETTING_FULLSCREEN]), "Switch To " + getScreenMode(not settingList[SETTING_FULLSCREEN]) + " Mode"],
                                                    EXIT_OPTIONS:["Back","Go Back to the Main Menu"]}
    
                            optionResult = menu.Menu(self.screen,
                                                     self.musicList[self.worldNumber],
                                                     screenGrab,
                                                     [0, SCREEN_HEIGHT / 3, SCREEN_WIDTH, SCREEN_HEIGHT],
                                                     ["Options",96,SCREEN_WIDTH / 2, SCREEN_HEIGHT / 4],
                                                     optionMenuDictionary,
                                                     lastHighlighted).displayMenu()
                            
                            if optionResult == SOUND_MENU:
                                soundResult = True
                                lastHighLighted = 0
                                while soundResult:
                                    
                                    soundResult = menu.Menu(self.screen,
                                                            self.musicList[self.worldNumber],
                                                            screenGrab,
                                                            [0, SCREEN_HEIGHT / 3, SCREEN_WIDTH, SCREEN_HEIGHT],
                                                            ["Sound Options",96,SCREEN_WIDTH / 2, SCREEN_HEIGHT / 4],
                                                            soundMenuDictionary,
                                                            lastHighlighted).displayMenu()
                                    
                                    if soundResult == TOGGLE_SFX:
                                        settingList[SFX] = not settingList[SFX]
                                        lastHighlighted = 0
                                    
                                    elif soundResult == TOGGLE_MUSIC:
                                        settingList[MUSIC] = not settingList[MUSIC]
                                        if not settingList[MUSIC]:
                                            pygame.mixer.Channel(MUSIC_CHANNEL).stop()
                                        lastHighlighted = 1
                                        
                                    elif soundResult == EXIT_OPTIONS:
                                        soundResult = False
                                        
                                    soundMenuDictionary = {TOGGLE_SFX:["Sound Effects: " + on(settingList[SFX]), "Turn " + on(not settingList[SFX]) + " Sound Effects"],
                                        TOGGLE_MUSIC:["Music: " + on(settingList[MUSIC]),"Turn " + on(not settingList[MUSIC]) + " Music"],
                                        EXIT_OPTIONS:["Back","Go Back to the Option Menu"]}
                                        
                            if optionResult == DISPLAY_MENU:
                                displayResult = True
                                lastHighlighted = 0
                                while displayResult:
                                    
                                    displayResult = menu.Menu(self.screen,
                                                            self.musicList[self.worldNumber],
                                                            screenGrab,
                                                            [0, SCREEN_HEIGHT / 3, SCREEN_WIDTH, SCREEN_HEIGHT],
                                                            ["Video Options",96,SCREEN_WIDTH / 2, SCREEN_HEIGHT / 4],
                                                            displayMenuDictionary,
                                                            lastHighlighted).displayMenu()           
                            
                                    if displayResult == TOGGLE_PARTICLES:
                                        settingList[PARTICLES] = not settingList[PARTICLES]
                                        lastHighlighted = 0
                                        
                                    elif displayResult == TOGGLE_FULLSCREEN:
                                        settingList[SETTING_FULLSCREEN] = not settingList[SETTING_FULLSCREEN]
                                        lastHighlighted = 1
                                        pygame.mixer.quit()
                                        pygame.mixer.init()
                                        
                                        if settingList[SETTING_FULLSCREEN]:
                                            utility.setFullscreen()
                                        else:
                                            utility.setFullscreen(False)
                                            
                                        pygame.mouse.set_visible(False)
                                        
                                    elif displayResult == EXIT_OPTIONS:
                                        displayResult = False
                                        
                                    displayMenuDictionary = {TOGGLE_PARTICLES:["Particles: " + able(settingList[PARTICLES]), "Turn " + on(not settingList[PARTICLES]) + " Particle Effects"],
                                                            TOGGLE_FULLSCREEN:["Video Mode: " + getScreenMode(settingList[SETTING_FULLSCREEN]), "Switch To " + getScreenMode(not settingList[SETTING_FULLSCREEN]) + " Mode"],
                                                            EXIT_OPTIONS:["Back","Go Back to the Main Menu"]}
                            
                            elif optionResult == EXIT_OPTIONS:
                                optionResult = False
                            
                            elif optionResult == CHANGE_SENSITIVITY:
                                sensitivityResult = True
                                lastHighlighted = 0
                                while sensitivityResult:
                        
                                    sensitivityResult = menu.Menu(self.screen,
                                                                self.musicList[self.worldNumber],
                                                                screenGrab,
                                                                [0, SCREEN_HEIGHT / 3, SCREEN_WIDTH, SCREEN_HEIGHT],
                                                                ["Mouse Sensitivity",96,SCREEN_WIDTH / 2, SCREEN_HEIGHT / 4],
                                                                sensitivityMenuDictionary,
                                                                lastHighlighted).displayMenu()
                
                                    if sensitivityResult == 0:
                                        settingList[SENSITIVITY] = .5
                                        
                                    elif sensitivityResult == 1:
                                        settingList[SENSITIVITY] = .75
                                        sensitivityResult = False
                                        
                                    elif sensitivityResult == 2:
                                        settingList[SENSITIVITY] = 1
                                        sensitivityResult = False
                                        
                                    elif sensitivityResult == 3:
                                        settingList[SENSITIVITY] = 1.25
                                        sensitivityResult = False
                                        
                                    elif sensitivityResult == 4:
                                        settingList[SENSITIVITY] = 1.5
                                        sensitivityResult = False
                                
                    elif pauseMenu == RESUME_GAME or pauseMenu == False:
                        pauseMenuRunning = False
                        pygame.mouse.get_rel()
    
                    elif pauseMenu == EXIT_GAME:
                       utility.fadeMusic()
                       utility.playMusic(self.musicList[MENU_MUSIC], True)
                       self.done = True
                       pauseMenuRunning = False
                                       
            elif event.type == MOUSEMOTION and self.player.lives:
                mousein = [pygame.mouse.get_pos()[0] - 512.0, pygame.mouse.get_pos()[1] - 384.0]
                if mousein[0] != 0 and mousein[1] != 0:
                    self.player.fire()
                    self.player.velocity = (self.player.velocity + mousein) / 1.5 * settingList[SENSITIVITY]
Exemple #4
0
    def run(self):
        while not self.done:
            if self.worldDone:
                if self.worldNumber < MAX_WORLD:
                    self.worldBeat()

                    """Resetting player lives so that
                    it isn't in their best interest
                    to play easier worlds just to have
                    extra lives."""
                    self.player.lives = 3
                    self.player.lifeBoard.setText('x' + str(self.player.lives))
                    
                    self.player.score = 0
                    self.player.nextBonus = 50000

                    """Loading the new world"""
                    self.worldNumber += 1
                    
                    if self.worldNumber == 0:
                        self.newScene = scene.tutorialScene()
                    elif self.worldNumber == 1:
                        self.newScene = scene.forestScene()
                    elif self.worldNumber == 2:
                        self.newScene = scene.rockyScene()
                    elif self.worldNumber == 3:
                        self.newScene = scene.pinkScene()                     
                    
                    if self.worldNumber > settingList[WORLD_UNLOCKED]:
                        settingList[WORLD_UNLOCKED] = self.worldNumber
                    utility.playMusic(self.musicList[self.worldNumber],True)
                    self.currentWorld = world.World(self.worldList[self.worldNumber], self.musicList[self.worldNumber])
                    self.currentWorld.load()
                    self.worldDone = False
                        
                else:
                    self.gameBeat()

            self.checkCollision()
            self.update()
            self.draw()
            self.handleEvents()
            
            pygame.mouse.set_pos(MOUSE_DEFAULT_POSITION)
            pygame.mouse.get_rel()
            self.mouseLastMove = pygame.mouse.get_pos()
            
            self.timer.tick(FRAMES_PER_SECOND)
     
            if self.player.dead:
                highScore = readHighScores()

                if self.player.score < highScore[self.worldNumber]:
                    endGameDictionary = {HIGH_SCORE:["High Score For This World: " + str(highScore[self.worldNumber]), "You would need to score " + str(highScore[self.worldNumber] - self.player.score) + " more to beat it!"],
                                         NEXT_WORLD:["Exit","Return To The Menu"]} 
                elif self.player.score == highScore[self.worldNumber]:
                    endGameDictionary = {HIGH_SCORE:["High Score For This World: " + str(highScore[self.worldNumber]), "You Tied the High Score!"],
                                         NEXT_WORLD:["Exit","Return To The Menu"]}         
                else:
                    endGameDictionary = {HIGH_SCORE:["High Score For This World: " + str(highScore[self.worldNumber]), "You Beat the High Score!"],
                                         NEXT_WORLD:["Exit","Return To The Menu"]}

                    highScore[self.worldNumber] = self.player.score
                    writeHighScores(highScore)
                utility.dim(128,FILL_COLOR)
                endGameMenu = menu.Menu(self.screen,
                                        self.musicList[self.worldNumber],
                                        self.screen.convert(),
                                        [0, SCREEN_HEIGHT / 3, SCREEN_WIDTH, SCREEN_HEIGHT],
                                        ["Game Over",128,SCREEN_WIDTH / 2, SCREEN_HEIGHT / 4],
                                        endGameDictionary).displayMenu()

                self.done = True
                utility.fadeMusic()
                utility.playMusic(self.musicList[MENU_MUSIC], True)