Esempio n. 1
0
    def on_key_press(self, symbol, modifiers):
        """
        Handles the various keys (see protocol or help in the simulation)

        :param symbol: the symbol of the key
        :param modifiers: the modifiers (i.e. shift)
        """
        if symbol == key.PLUS or symbol == key.NUM_ADD:
            self.value_before = self.solar_system.simulation_speed_factor
            self.solar_system.increase_simulation_speed(60 * 60 * 24)
        elif symbol == key.MINUS or symbol == key.NUM_SUBTRACT:
            self.value_before = self.solar_system.simulation_speed_factor
            if self.solar_system.simulation_speed_factor < 0:
                self.solar_system.simulation_speed_factor = 0
            else:
                self.solar_system.decrease_simulation_speed(60 * 60 * 24)
        if symbol == key.P:
            if self.is_paused:
                self.solar_system.simulation_speed_factor = self.value_before
                self.is_paused = False
            else:
                self.solar_system.simulation_speed_factor = 0
                self.is_paused = True
        elif symbol in [key.F1, key.H]:
            HelpLabel.instance().toggle()
        elif symbol == key.F11:
            if self.is_fullscreen:
                self.win.set_fullscreen(False)
                self.is_fullscreen = False
            else:
                self.win.set_fullscreen(True)
                self.is_fullscreen = True
        elif symbol == key.R:
            if self.solar_system.is_real:
                self.solar_system.toggle_real(True)
                self.solar_system.is_real = False
            else:
                self.solar_system.toggle_real(False)
                self.solar_system.is_real = True
Esempio n. 2
0
solar_system = SolarSystem([], None)
solar_system.add_planet(sun)
solar_system.add_planet(mercury)
solar_system.add_planet(venus)
solar_system.add_planet(earth)
solar_system.add_planet(mars)
solar_system.add_planet(jupiter)
solar_system.add_planet(saturn)
solar_system.add_planet(uranus)
solar_system.add_planet(neptune)
solar_system.add_planet(pluto)
solar_system.add_planet(earth_moon)

cam = Camera(win)
con = ButtonControls(win, solar_system)
help_label = HelpLabel.instance()


@win.event
def on_draw():
    millis()
    win.clear()
    cam.update()
    solar_system.draw()

    gl.glMatrixMode(gl.GL_MODELVIEW)
    gl.glPushMatrix()
    gl.glLoadIdentity()

    gl.glMatrixMode(gl.GL_PROJECTION)
    gl.glPushMatrix()