示例#1
0
    def _preload(self, screen):
        rect = screen.get_rect()
        resolution = (rect.width, rect.height)

        yield 'Loading Events'
        self.controller = game_handler
        self.controller.context.mediator = self

        yield 'Loading Background'
        self.bg = ImageView(
            background.load(options=background.STRETCH, resolution=resolution)
        )
        self.views.append(self.bg)

        yield 'Loading Planets'
        for msg in Planet.load():
            yield msg

        yield 'Loading Stars'
        Sun.set_fps(GameMediator.FPS)

        yield 'Loading Sector'
        self.celestials = []

        sun = Sun(resolution[0] / 2, resolution[1] / 2, 50)
        self.celestials.append(sun)
        self.views.append(sun)
        yield

        planet = Planet(0, 0, 8)
        planet.orbit(sun, 140)
        self.celestials.append(planet)
        self.views.append(planet)
        yield

        planet = Planet(0, 0, 10)
        planet.orbit(sun, 60)
        self.celestials.append(planet)
        self.views.append(planet)
        yield

        planet = Planet(0, 0, 30)
        planet.orbit(sun, 200)
        self.celestials.append(planet)
        self.views.append(planet)
        yield

        yield 'Building Ships'
        for msg in Ship.load():
            yield msg

        Ship.set_fps(GameMediator.FPS)

        yield 'Spawning Players'
        self.players = {}

        player1 = Ship(50, 50, base='purple')
        player1.set_MoveSpeed(10)
        player1.set_TurnSpeed(pi)
        player1.set_direction(0)
        self.views.append(player1)
        self.players[1] = player1
        yield

        player2 = Ship(600, 50, base='red')
        player2.set_MoveSpeed(10)
        player2.set_TurnSpeed(pi)
        player2.set_direction(-pi/4)
        self.views.append(player2)
        self.players[2] = player2
        yield

        player3 = Ship(50, 400, base='green')
        player3.set_MoveSpeed(10)
        player3.set_TurnSpeed(pi)
        player3.set_direction(pi/2)
        self.views.append(player3)
        self.players[3] = player3
        yield

        player4 = Ship(600, 400, base='blue')
        player4.set_MoveSpeed(10)
        player4.set_TurnSpeed(pi)
        player4.set_direction(-pi/2)
        self.views.append(player4)
        self.players[4] = player4
        yield

        yield 'Applying Gravity'
        for celestial in self.celestials:
            celestial.pull_on(player1)
            celestial.pull_on(player2)
            celestial.pull_on(player3)
            celestial.pull_on(player4)