Exemple #1
0
class Browser(object):
    def __init__(self):
        self.clock = pygame.time.Clock()
        self.screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
        self.event_manager = EventManager()
        self.current_page = Page(pygame.Surface((0, 0)), BLACK,
                                 self.event_manager)

        self.name_1 = "Batman"
        self.name_2 = "Superman"

    def get_shower(self, klass, *args):
        def shower():
            self.current_page.clean()
            self.current_page = klass(self.screen, self.event_manager, *args)
            self.current_page.display()

        return shower

    def run(self):
        self.get_shower(SplashScreen)()

        def cb1(value):
            self.name_1 = value
            self.get_shower(TextInput, "Enter Player 2's name", cb2)()

        def finish_cb():
            self.get_shower(LeaderBoardPage)()

        def cb2(value):
            self.name_2 = value
            self.get_shower(BoardPage, (self.name_1, self.name_2), finish_cb)()

        self.event_manager.add_timer(
            2, self.get_shower(TextInput, "Enter Player 1's name", cb1))

        while True:
            self.event_manager.run()
            self.clock.tick(FPS)
Exemple #2
0
    def display(self):
        del self.texts[2:]
        TOP = self.texts[1][1].top + 35

        format_string = "{rank:>4d} | {name:20s} | {matches_played:>14d} | {wins:>4d} | {losses:>6d} | {point_diff:>16d} | {win_per:>14.2f}"
        for index, leader in enumerate(self.leaderboard.get_top_number(10)):
            res = SMALL.render(
                format_string.format(**dict(
                    zip(("rank", "name", "matches_played", "wins", "losses",
                         "point_diff", "win_per"), leader))), True, BLACK)
            res_rect = res.get_rect()
            res_rect.top = TOP + 35 * index
            res_rect.centerx = HALF_WIDTH
            self.texts.append((res, res_rect))

        super(LeaderBoardPage, self).display()


if __name__ == '__main__':
    from properties import SCREEN_HEIGHT, SCREEN_WIDTH
    from eventmanager import EventManager
    c = pygame.time.Clock()
    s = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
    e = EventManager()
    l = LeaderBoardPage(s, e)
    l.display()
    while True:
        e.run()
        c.tick(30)