예제 #1
0
    def run(self):
        menu = Menu(self.screen)
        hs_screen = HighScoreScreen(self.screen, self.score_keeper)
        intro_seq = Intro(self.screen)
        e_loop = EventLoop(
            loop_running=True,
            actions={pygame.MOUSEBUTTONDOWN: menu.check_buttons})

        while e_loop.loop_running:
            self.clock.tick(60)  # 60 fps limit
            e_loop.check_events()
            self.screen.fill(PacManPortalGame.BLACK_BG)
            if not menu.hs_screen:
                intro_seq.update()  # display intro/menu
                intro_seq.blit()
                menu.update()
                menu.blit()
            else:
                hs_screen.blit()  # display highs score screen
                hs_screen.check_done()
            if menu.ready_to_play:
                pygame.mixer.music.stop()  # stop menu music
                self.play_game()  # player selected play, so run game
                for g in self.ghosts:
                    g.reset_speed()
                menu.ready_to_play = False
                self.score_keeper.save_high_scores(
                )  # save high scores only on complete play
                hs_screen.prep_images()  # update high scores page
                hs_screen.position()
            elif not pygame.mixer.music.get_busy():
                pygame.mixer.music.play(-1)  # music loop
            pygame.display.flip()
예제 #2
0
파일: game.py 프로젝트: Nando96/pac
    def play(self):
        menu = Menu(self.screen)
        hs_screen = HighScoreScreen(self.screen, self.score_keeper)
        intro_seq = Intro(self.screen)
        loop = Events(runs=True, actions={pygame.MOUSEBUTTONDOWN: menu.check})

        while loop.runs:
            self.clock.tick(60)
            loop.check_events()
            self.screen.fill((0, 0, 0))
            if not menu.hs_screen:
                intro_seq.update()
                intro_seq.blit()
                menu.update()
                menu.blit()
            else:
                hs_screen.blit()
                hs_screen.check_done()
            if menu.ready_to_play:
                pygame.mixer.music.stop()
                pygame.mixer.music.load('sounds/waka.wav')
                pygame.mixer.music.play()
                self.play_game()
                menu.ready_to_play = False
                self.score_keeper.save_high_scores()
                hs_screen.prep_images()
                hs_screen.position()
            elif not pygame.mixer.music.get_busy():
                pygame.mixer.music.play(-1)
            pygame.display.flip()