def delete(world_name): global ACTIVE_WORLD if not world_name in WORLDS: raise Exception('World does not exist: %s' % world_name) for entity_id in WORLDS[world_name]['entities']: entities.delete_entity_via_id(entity_id) logging.debug('Deleted world: %s' % world_name) if ACTIVE_WORLD == world_name: ACTIVE_WORLD = None del WORLDS[world_name]
def load_map(name): _map = {} with open('%s.dat' % name, 'r') as _file: _x = 0 _y = 0 for line in _file.readlines(): _x = 0 for tile in [int(c) for c in line if not c == '\n']: _map['%s,%s' % (_x*100, _y*100)] = {'solid': False} if tile == 1: _map['%s,%s' % (_x*100, _y*100)]['solid'] = True _tile = entities.create_entity('tiles_foreground') _map['%s,%s' % (_x*100, _y*100)]['tile'] = _tile['_id'] _sprite = effects.create_image(_x*100, _y*100, 'wall_full.png') _id = _sprite['_id'] entities.register_event(_tile, 'delete', lambda _entity: entities.delete_entity_via_id(_id)) _sprite['sprite'].image.anchor_x = 0 _sprite['sprite'].image.anchor_y = 0 _x += 1 _y += 1 return _map
def handle_input(entity_id): if not entity_id in entities.ENTITIES or not 'player' in entities.ENTITIES[entity_id]: if controls.key_pressed(' '): battlefield.clean() battlefield.create_player() battlefield.spawn_enemies() return False if not clock.is_ticking() and controls.key_pressed(' '): clock.hang_for(0) _entity = entities.get_entity(entity_id) _move_speed = _entity['speed'] if controls.key_held('s'): #entities.trigger_event(_entity, 'accelerate', velocity=[0, _move_speed]) entities.trigger_event(_entity, 'set_direction', direction=270) entities.trigger_event(_entity, 'thrust') if controls.key_held('a'): #entities.trigger_event(_entity, 'accelerate', velocity=[-_move_speed, 0]) entities.trigger_event(_entity, 'set_direction', direction=180) entities.trigger_event(_entity, 'thrust') if controls.key_held('d'): #entities.trigger_event(_entity, 'accelerate', velocity=[_move_speed, 0]) entities.trigger_event(_entity, 'set_direction', direction=0) entities.trigger_event(_entity, 'thrust') if controls.key_held('w'): #entities.trigger_event(_entity, 'accelerate', velocity=[0, -_move_speed]) entities.trigger_event(_entity, 'set_direction', direction=90) entities.trigger_event(_entity, 'thrust') if controls.key_pressed('q'): entities.trigger_event(_entity, 'create_timer', time=120, enter_callback=lambda entity: entities.trigger_event(_entity, 'set_maximum_velocity', velocity=[80, 80]) and entities.trigger_event(_entity, 'set_speed', speed=80), exit_callback=lambda entity: entities.trigger_event(_entity, 'set_maximum_velocity', velocity=[30, 30])) if controls.key_pressed('v'): for entity_id in entities.get_sprite_groups(['hazards', 'enemies']): entities.delete_entity_via_id(entity_id) if controls.key_held_ord(controls.NUM_1): entities.trigger_event(_entity, 'shoot', direction=225) if controls.key_held_ord(controls.NUM_2): entities.trigger_event(_entity, 'shoot', direction=270) if controls.key_held_ord(controls.NUM_3): entities.trigger_event(_entity, 'shoot', direction=315) if controls.key_held_ord(controls.NUM_4): entities.trigger_event(_entity, 'shoot', direction=180) if controls.key_held_ord(controls.NUM_6): entities.trigger_event(_entity, 'shoot', direction=0) if controls.key_held_ord(controls.NUM_7): entities.trigger_event(_entity, 'shoot', direction=135) if controls.key_held_ord(controls.NUM_8): entities.trigger_event(_entity, 'shoot', direction=90) if controls.key_held_ord(controls.NUM_9): entities.trigger_event(_entity, 'shoot', direction=45) if controls.key_held_ord(controls.NUM_5): entities.trigger_event(_entity, 'shoot_alt') if controls.key_held('x'): battlefield.clean()