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
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()