Exemplo n.º 1
0
class Game:
    BLACK = (0, 0, 0)

    def __init__(self):
        pygame.init()
        self.screen = pygame.display.set_mode((1200, 800))
        pygame.display.set_caption("Pacman Portal")
        # self.expandfile = ExpandFile('images/pacman_maze.txt', expandBy=3)
        self.maze = Maze(self.screen,
                         mazefile='images/pacman_maze_expanded_pts.txt',
                         brickfile='brick',
                         pointfile='point')
        self.pacman = Pacman(self.screen)
        self.pac_group = Group()
        self.ghosts = Ghosts(self.screen)
        self.play_button = Button(self.screen, "Play")
        self.stats = Stats()

    def __str__(self):
        return 'Game(Pacman Portal), maze=' + str(self.maze) + ')'

    def play(self):
        eloop = EventLoop(finished=False)
        while not eloop.finished:
            while not self.stats.game_active:
                self.play_button.draw_button()
                eloop.check_events(self.pacman, self.play_button, self.stats)
            eloop.check_events(self.pacman, self.play_button, self.stats)
            self.pacman.update(self.maze, self.pac_group)
            self.update_screen()

    def update_screen(self):
        self.screen.fill(Game.BLACK)
        self.maze.blitme()
        self.pacman.blitme()
        self.ghosts.blitme()
        pygame.display.flip()
Exemplo n.º 2
0
class Game:
    BLACK = (0, 0, 0)

    def __init__(self):
        pygame.init()
        self.screen = pygame.display.set_mode((680, 740))
        self.ai_settings = Settings()
        pygame.display.set_caption("Pacman Portal")

        self.maze = Maze(self.screen,
                         mazefile='map.txt',
                         brickfile='square',
                         portalfile='square',
                         shieldfile='shield',
                         pointfile='point',
                         dotfile='dot',
                         powerpillfile='powerpill')

        self.pacman = Pacman(self.ai_settings, self.screen, self.maze)
        self.ghosts = Ghosts(self.ai_settings, self.screen, self.maze,
                             self.pacman)
        self.displayname = Button(self.screen, "PacmanPortal")
        self.play_button = Button(self.screen, "PLAY GAME")
        self.highscore_button = Button(self.screen, "HIGH SCORES")
        self.blinkyname = Button(self.screen, "BLiNKY")
        self.pinkyname = Button(self.screen, "PiNKY")
        self.clydename = Button(self.screen, "CLYDE")
        self.inkeyname = Button(self.screen, "iNKEY")
        self.back = Button(self.screen, "Back")
        self.sb = Scoreboard(self.ai_settings, self.screen, self.maze,
                             self.pacman)
        self.score = Button(self.screen, "hello")
        self.blues = 0

    def __str__(self):
        return 'Game(Pacman Portal), maze=' + str(self.maze) + ')'

    def play(self):
        # self.displayname = Button(self.screen, "Portal Pacman")
        self.displayname.rect.centery -= 300
        self.displayname.msg_image_rect.center = self.displayname.rect.center
        # self.highscore_button = Button(self.screen, "Portal Pacman")
        self.highscore_button.rect.centery += 330
        self.highscore_button.msg_image_rect.center = self.highscore_button.rect.center
        # self.play_button = Button(self.screen, "Portal Pacman")
        self.play_button.rect.centery += 280
        self.play_button.msg_image_rect.center = self.play_button.rect.center

        hs_file = open("score.txt", "r")
        self.ai_settings.hs = int(hs_file.read())
        hs_file.close()
        msgg = 'The high score is ' + str(self.ai_settings.hs)
        self.score = Button(self.screen, msgg)
        self.score.rect.centery -= 150
        self.score.msg_image_rect.center = self.score.rect.center
        self.ghosts.intro()
        self.pacman.intro()
        self.blues = pygame.mixer.Sound('sounds/blueghosts.wav')

        eloop = EventLoop(finished=False)
        while not eloop.finished:
            eloop.check_events(self.ai_settings, self.pacman, self.maze,
                               self.play_button, self.highscore_button,
                               self.back, self.ghosts, self.blues, self.sb)
            if self.ai_settings.score > self.ai_settings.hs and self.ai_settings.game_active:
                self.ai_settings.hs = self.ai_settings.score
                msgg = 'The high score is ' + str(self.ai_settings.hs)
                score = Button(self.screen, msgg)
                score.rect.centery += 150
                score.msg_image_rect.center = score.rect.center
            if len(self.maze.dots) == 1:
                self.maze = Maze(self.screen,
                                 mazefile='map.txt',
                                 brickfile='square',
                                 portalfile='square',
                                 shieldfile='shield',
                                 pointfile='point',
                                 dotfile='dot',
                                 powerpillfile='powerpill')
                self.pacman.reset()
                self.ghosts.reset()
                self.ai_settings.level += 1
            if not self.ai_settings.game_active:
                pygame.mouse.set_visible(True)
            self.update_screen()

    def update_screen(self):
        self.pacman.update()
        self.ghosts.update()
        self.screen.fill(Game.BLACK)
        self.maze.blitme()
        self.pacman.blitme()
        self.ghosts.blitme()
        self.sb.prep_score()
        self.sb.prep_high_score()
        # self.sb.prep_pacmans()
        self.sb.show_score()

        if not self.ai_settings.game_active:
            self.screen.fill(self.ai_settings.bg_color)
            self.displayname.draw_button()
            self.highscore_button.draw_button()
            self.play_button.draw_button()
            self.ghosts.introupdate()
            self.ghosts.blitme()
            self.pacman.introupdate()
            self.pacman.blitme()

        if self.ai_settings.shs:
            self.screen.fill(self.ai_settings.bg_color)
            self.back.draw_button()
            self.score.draw_button()

        pygame.display.flip()