Пример #1
0
class SisyfosWindow(pyglet.window.Window):
    SIDE = 600
    VERSION_STRING = '0.1'
    HIGH_SCORE_LIST_SIZE = 10

    def __init__(self):
        pyglet.window.Window.__init__(self,
                                      width=self.SIDE,
                                      height=self.SIDE,
                                      caption='sim')

        self.settings_path = get_settings_path('Sisyfos')
        self.high_score_list = highscore.load(self.settings_path)
        if not self.high_score_list:
            self.high_score_list = \
                highscore.HighScoreList(self.HIGH_SCORE_LIST_SIZE)
            self.high_score_list.insert_score('foo', 1)
        highscore.save(self.settings_path, self.high_score_list)
        self.start_screen = StartScreen(self.width, self.height,
                                        self.VERSION_STRING,
                                        self.high_score_list,
                                        5, self.start_game)
        self.mode = self.start_screen

    def on_resize(self, width, height):
        self.mode.on_resize(width, height)
        
    def on_draw(self):
        self.mode.on_draw()

    def on_key_press(self, symbol, modifiers):
        self.mode.on_key_press(symbol, modifiers)

    def on_key_release(self, symbol, modifiers):
        self.mode.on_key_release(symbol, modifiers)

    def start_game(self):
        self.mode = Sisyfos(self.width, self.height, self.end_game)

    def end_game(self, points):
        if points:
            if (not self.high_score_list.full() or
                points > self.high_score_list[-1][1]):

                def save_high_score(name):
                    self.high_score_list.insert_score(name, points)
                    highscore.save(self.settings_path, self.high_score_list)
                    self.mode = self.start_screen
                    self.mode.on_resize(self.width, self.height)
                    self.mode.make_high_score_labels()

                self.mode = EnterHighScoreScreen(self.width, self.height,
                                                 points, self, save_high_score)
            else:
                self.mode = self.start_screen
                self.mode.on_resize(self.width, self.height)
        else:
            self.mode = self.start_screen
            self.mode.on_resize(self.width, self.height)
Пример #2
0
    def end_game(self, points):
        if points:
            if (not self.high_score_list.full() or
                points > self.high_score_list[-1][1]):

                def save_high_score(name):
                    self.high_score_list.insert_score(name, points)
                    highscore.save(self.settings_path, self.high_score_list)
                    self.mode = self.start_screen
                    self.mode.on_resize(self.width, self.height)
                    self.mode.make_high_score_labels()

                self.mode = EnterHighScoreScreen(self.width, self.height,
                                                 points, self, save_high_score)
            else:
                self.mode = self.start_screen
                self.mode.on_resize(self.width, self.height)
        else:
            self.mode = self.start_screen
            self.mode.on_resize(self.width, self.height)
Пример #3
0
 def start_game(self):
     self.mode = Sisyfos(self.width, self.height, self.end_game)