def add_target(self, target_conf): target = thing.Thing(self.renderer) target.texture = pygame.image.load("png/hill_long.png") target.position = (target_conf['position']['x'], target_conf['position']['y'] - target.texture.get_height()) target.size = (target.texture.get_width(), target.texture.get_height()) target.name = "target" physics.add_object(target, False) self.drawables.append(target)
def create_floor(self, floor_conf): for segment in floor_conf['segments']: floor = thing.Thing(self.renderer) floor.position = (segment['position']['x'], segment['position']['y']) floor.texture = pygame.image.load("png/%s" % segment['texture']) floor.size = (segment['length'], 70) floor.draw_continuous = True physics.add_object(floor) self.drawables.append(floor)
def set_player(self, position_conf): player_physics = physics.Physics() player_physics.on_collide += self.attack_handler self.player = entity.Entity(self.renderer, player_physics, self.input_handler) self.player.texture = pygame.image.load("png/player.png") self.player.texture_dead = pygame.image.load("png/player_dead.png") self.player.position = (position_conf['x'], position_conf['y']) self.player.size = (46, 64) self.player.kill_direction = "horizontal" self.player.name = "Player" physics.add_object(self.player, False) self.drawables.append(self.player) self.updateables.append(self.player) self.renderer.set_follow(self.player)
def create_level(self, levelid): lvl = level.Level(levelid) lvl.load() self.add_clouds() self.add_decoration(lvl) self.create_floor(lvl.get_floor()) self.add_target(lvl.get_target()) self.set_player(lvl.get_player_position()) for obj in lvl.get_objects(): new_obj = thing.Thing(self.renderer) new_obj.position = (obj['position']['x'], obj['position']['y']) new_obj.texture = pygame.image.load("png/%s" % obj['object']['texture']) new_obj.size = (obj['object']['size']['x'], obj['object']['size']['y']) self.drawables.append(new_obj) if obj['collision']: physics.add_object(new_obj) for enemy in lvl.get_enemies(): physics_eng = physics.Physics() input_ai = input.Intelligence(physics_eng) enmy = entity.Entity(self.renderer, physics_eng, input_ai) input_ai.set_entity(enmy) enmy.texture = pygame.image.load("png/%s" % enemy['object']['texture']) enmy.texture_dead = pygame.image.load("png/%s" % enemy['object']['texture_dead']) enmy.position = (enemy['position']['x'], enemy['position']['y']) enmy.size = (enemy['object']['size']['x'], enemy['object']['size']['y']) enmy.speed = enemy['object']['speed'] enmy.name = enemy['object']['name'] self.drawables.append(enmy) self.updateables.append(input_ai) # Update input before enemy self.updateables.append(enmy) physics.add_ubiquitous_object(enmy, False)