class Game: "Representa la escena de pelea, donde el shaolin camina por el escenario." def __init__(self, world): self.world = world self.enemies = [] self.sprites = group.Group() self.stage = Stage(self, self.sprites) self.sprites.camera = self.stage self.sprites_in_front = pygame.sprite.RenderPlain() self._create_player() self.stage.object_to_follow = self.player self.stage.load_level(1) if VISIBLE_DEBUG: # Visor de rendimiento self.text = Text(world.font, world.fps, "FPS: %d") self.sprites_in_front.add(self.text) def _create_player(self): self.control = Control() self.player = Player(self, self.control, self.sprites, DATADIR) self.sprites.add(self.player) self.sprites.add(self.player.shadow) self.sprites.add(self.player.bandage) self.energy = energy.EnergyView(10, 10, self.world.font) self.energy.set_model(self.player.energy_model) self.sprites_in_front.add(self.energy) self.enemy_energy = energy.EnergyView(440, 10, self.world.font) self.sprites_in_front.add(self.enemy_energy) def handle_event(self, event): if event.type == pygame.KEYDOWN: self.control.update(event, True) if event.key == pygame.K_ESCAPE: new_scene = scenes.mainmenu.MainMenu(self.world) self.world.change_state(new_scene) elif event.type == pygame.KEYUP: self.control.update(event, False) def update(self): self.stage.update() self.sprites.update() self.sprites_in_front.update() if DEBUG: b1, b2, b3 = pygame.mouse.get_pressed() if b1: self.stage.do_camera_effect() elif b2: self.stage.do_camera_effect(10) elif b3: self.world.fps.slow() self.control.post_update() def draw(self, screen): self.stage.draw(screen) self.sprites.draw(screen) self.sprites_in_front.draw(screen) self.stage.last_draw(screen) pygame.display.flip() def on_player_energy_model_change(self, model): pass def on_enemy_energy_model_change(self, model): self.enemy_energy.set_model(model)