Beispiel #1
0
    def run(self):
        """The main game loop"""
        while True:
            """-------------------------------MENU------------------------------------"""

            if self.state == S_MENU:
                self.menu.draw()

            self.keys = pygame.key.get_pressed()

            if self.state == S_MENU:
                for event in pygame.event.get():
                    # Handle generic events
                    for event_type, callback in self.events.items():
                        if event.type == event_type:
                            callback(event)

                    # Handle keyboard events
                    if event.type == pygame.KEYDOWN:
                        for event_key in self.keymap_singlepress.keys():
                            if event.key == event_key:
                                self.keymap_singlepress[(event_key)](event)
            """-------------------------------PREGAME MENU-----------------------------"""

            self.keys = pygame.key.get_pressed()

            if self.state == S_PREGAME:
                if self.pregame_menu == False:
                    del (self.menu)
                    self.menu = False
                    self.pregame_menu = PreGameMenu(self)

                self.pregame_menu.draw()

                for event in pygame.event.get():
                    # Handle generic events
                    for event_type, callback in self.events.items():
                        if event.type == event_type:
                            callback(event)

                    # Handle keyboard events
                    if event.type == pygame.KEYDOWN:
                        for event_key in self.keymap_singlepress.keys():
                            if event.key == event_key:
                                self.keymap_singlepress[(event_key)](event)
            """-------------------------------GAME------------------------------------"""

            if self.state == S_GAME:
                if not self.paused:
                    for event in pygame.event.get():
                        for event_type, callback in self.events.items():
                            if event.type == event_type:
                                callback(event)

                        if event.type == pygame.KEYDOWN:
                            for event_key in self.keymap_singlepress.keys():
                                if event.key == event_key:
                                    self.keymap_singlepress[(event_key)](event)

                    for event_key in self.keymap.keys():
                        if self.keys[event_key]:
                            self.keymap[(event_key)]()

                else:
                    pass

                self.map.draw()

                for bullet in self.ammo:
                    bullet.update()
                    bullet.draw()

                for player in self.agents:
                    player.update()
                    player.draw()

                for animation in Animation.List:
                    animation.animate()
                    animation.draw()

                if len(self.agents) < 2:
                    if self.wait > 0:
                        self.wait -= self.clock.get_time()
                    else:
                        self.wait = 1500
                        if len(self.agents) == 1:
                            self.stats.inform(self.agents[0].name, score=1)
                            logging.debug(self.stats.data)
                            self.agents[0].dead = True
                        else:
                            print("draw")
                        if self.debug:
                            print(
                                str(self.stats.data[self.all_player_names[0]].
                                    get('score', 0)) + " - " +
                                str(self.stats.data[
                                    self.all_player_names[1]].get('score', 0)))
                            print('Distance: {}, Distance: {}'.format(
                                self.stats.data[self.all_player_names[0]].get(
                                    'move', '0'),
                                self.stats.data[self.all_player_names[1]].get(
                                    'move', '0')))
                            print('Shots: {}, Shots: {}'.format(
                                self.stats.data[self.all_player_names[0]].get(
                                    'shots_fired', '0'),
                                self.stats.data[self.all_player_names[1]].get(
                                    'shots_fired', '0')))
                            print('Stickybombs: {}, Stickybombs: {}'.format(
                                self.stats.data[self.all_player_names[0]].get(
                                    'stickybomb_fired', '0'),
                                self.stats.data[self.all_player_names[1]].get(
                                    'stickybomb_fired', '0')))

                        self.agents = []
                        self.ammo = []
                        Animation.List = []

                        self.betweengame_menu = False
                        self.state = S_BETWEENGAME
            """------------------------------BETWEEN-----------------------------------"""
            if self.state == S_BETWEENGAME:
                if self.betweengame_menu == False:
                    del (self.menu)
                    self.menu = False
                    self.betweengame_menu = BetweenGameMenu(self)

                self.betweengame_menu.draw()

            self.keys = pygame.key.get_pressed()

            if self.state == S_BETWEENGAME:
                for event in pygame.event.get():
                    for event_type, callback in self.events.items():
                        if event.type == event_type:
                            callback(event)

                if event.type == pygame.KEYDOWN:
                    for event_key in self.keymap_singlepress.keys():
                        if event.key == event_key:
                            self.keymap_singlepress[(event_key)](event)
            """-------------------------------AFTER---------------------------------------"""
            if self.state == S_AFTERGAME:
                if self.aftergame_menu == False:
                    del (self.menu)
                    self.menu = False
                    self.aftergame_menu = AfterGameMenu(self)

                self.aftergame_menu.draw()

            self.keys = pygame.key.get_pressed()

            if self.state == S_AFTERGAME:
                for event in pygame.event.get():
                    for event_type, callback in self.events.items():
                        if event.type == event_type:
                            callback(event)

                if event.type == pygame.KEYDOWN:
                    for event_key in self.keymap_singlepress.keys():
                        if event.key == event_key:
                            self.keymap_singlepress[(event_key)](event)
            """-------------------------------UPGRADES------------------------------------"""

            if self.state == S_UPGRADES:
                pygame.quit()
                sys.exit()
            """-------------------------------ABOUT------------------------------------"""

            if self.state == S_ABOUT:
                self.menu = Menu()
                self.menu.about()
            """-------------------------------SETTINGS------------------------------------"""

            if self.state == S_SETTINGS:
                self.menu = Menu()
                self.menu.settings()

            if self.displaytime:
                self.screen.blit(
                    self.font.render(str(int(self.clock.get_fps())), True,
                                     (255, 255, 255)), (10, 10))

            pygame.display.flip()
            self.clock.tick(self.fps)
Beispiel #2
0
 def start_pre_game(self):
     self.preGameMenu = PreGameMenu(self.w, self.h)
     self.mode = self.preGameMenu
     self.screen.blit(self.mode.bg, (0, 0))
     disp.update()