def enter(self): awesomeengine.get() e = awesomeengine.get() e.input_manager.set_input_map('edit') m = Entity('editor_mouse') c = Entity('editor_entity_chooser') b1 = Entity('editor_place_button') b2 = Entity('editor_select_button') b3 = Entity('editor_delete_button') b4 = Entity('editor_move_button') e.entity_manager.add(m, b1, b2, b3, b4, c) ce = Entity('editor_camera') if hasattr(e, 'save_xy'): ce.x = e.save_xy[0] ce.y = e.save_xy[1] e.entity_manager.add(ce) l = awesomeengine.layer.SimpleCroppedLayer('draw') bl = awesomeengine.layer.SimpleCroppedLayer('draw2') bbl = awesomeengine.layer.SimpleCroppedLayer('draw3') l2 = awesomeengine.layer.SolidBackgroundLayer((0, 0, 0, 255)) l3 = awesomeengine.layer.GridLayer((75, 75, 0, 0), 200) cam = Camera(awesomeengine.get().renderer, ce, [l2, l3, bbl, bl, l], [b1, b2, b3, b4, c]) self.cams = [cam] if not hasattr(e, 'current_map'): load_map("1")
def handle_event(self, event): if event.target == 'MODE': if event.action == 'edit': awesomeengine.get().change_mode('edit') elif awesomeengine.get().entity_manager.has_by_name(event.target): awesomeengine.get().entity_manager.get_by_name( event.target).handle('input', event.action, event.value)
def handle_event(self, event): if event.target == 'MODE' and event.value == 1: if event.action == 'play': awesomeengine.get().change_mode('splash') if awesomeengine.get().entity_manager.has_by_name(event.target): awesomeengine.get().entity_manager.get_by_name( event.target).handle('input', event.action, event.value)
def handle_event(self, event): e = awesomeengine.get() if event.target == 'MODE' and event.value == 1: if event.action == 'play': if hasattr(awesomeengine.get(), 'current_map' ) and awesomeengine.get().current_map == '4': e.change_mode('welcome') else: e.change_mode('play')
def leave(self): e = awesomeengine.get() for ent in self.entities: e.entity_manager.remove(ent) if not hasattr(e, 'current_map'): load_map("1") else: if awesomeengine.get().current_map != '4': load_map(str(int(awesomeengine.get().current_map) + 1))
def leave(self): e = awesomeengine.get() for ent in self.entities: e.remove_entity(ent) sdl2hl.mixer.ALL_CHANNELS.halt()
def load_map(map_name): e = awesomeengine.get() un_load_map() e.entity_manager.add_from_map(map_name) e.entity_manager.commit_changes() if not e.entity_manager.has_by_name('player'): p = Entity('player') l = int(map_name) - 1 p.max_health = p.max_health_level[l] p.health = p.max_health p.air_jumps = p.air_jumps_level[l] p.num_projectiles = p.num_projectiles_level[l] e.entity_manager.add(p) e.entity_manager.commit_changes() if e.entity_manager.has_by_name('map_start'): map_start = e.entity_manager.get_by_name('map_start') player = e.entity_manager.get_by_name('player') player.x = map_start.x player.y = map_start.y e.current_map = map_name
def enter(self): un_load_map() e = awesomeengine.get() e.current_map = '0' e.input_manager.set_input_map('default') h = Entity('dead') c = Entity('welcome_camera') e.entity_manager.add(h, c) l = awesomeengine.layer.SimpleCroppedLayer('draw') cam = Camera(awesomeengine.get().renderer, c, [l], []) self.entities = [h, c] self.cams = [cam]
def enter(self): e = awesomeengine.get() e.input_manager.set_input_map('default') e.current_map = '0' h = Entity('title') c = Entity('welcome_camera') e.entity_manager.add(h, c) l = awesomeengine.layer.SimpleCroppedLayer('draw') cam = Camera(awesomeengine.get().renderer, c, [l], []) self.entities = [h, c] self.cams = [cam] self.music = e.resource_manager.get('sound', 'Braveless_Journey_Part3') self.channel = self.music.play(loops=-1) self.channel.volume = MUSIC_VOLUME
def enter(self): e = awesomeengine.get() e.input_manager.set_input_map('play') ce = Entity('play_camera') e.entity_manager.add(ce) l = awesomeengine.layer.SimpleCroppedLayer('draw') bl = awesomeengine.layer.SimpleCroppedLayer('draw2') bbl = awesomeengine.layer.SimpleCroppedLayer('draw3') l2 = awesomeengine.layer.SolidBackgroundLayer((0, 0, 0, 255)) h = Entity('hearts') cam = Camera(awesomeengine.get().renderer, ce, [l2, bbl, bl, l], [h]) self.cams = [cam] m = Entity('mouse') e.entity_manager.add(m, h) if not hasattr(e, 'current_map'): load_map("1")
def build_corner_graph(): e = awesomeengine.get() corners = list(e.entity_manager.get_by_tag('corner')) for corner in corners: corner.next_corners = [] for direction in map(vec2d.Vec2d, [(0,1), (1,0), (0,-1), (-1,0)]): found_corner = find_next_corner(corner, direction) if found_corner is not None: corner.next_corners.append(found_corner) if len(corner.next_corners) == 1: print (corner.x - 10)/ 20, (corner.y - 10)/20
def enter(self): e = awesomeengine.get() welcome_cam_entity = e.add_entity('attract-cam') image = e.add_entity('title-image') self.entities = [welcome_cam_entity, image] camera = awesomeengine.Camera( e.renderer, welcome_cam_entity, layers=[awesomeengine.layer.SolidBackgroundLayer((100,100,100,255)), awesomeengine.layer.SimpleLayer('draw')]) self.cameras = [camera]
def update(self, dt): engine = awesomeengine.get() for e in engine.entity_manager.get_by_tag('always_update'): e.handle('update', dt) r = rectangle.from_entity(engine.entity_manager.get_by_name('update-rect')) for e in engine.entity_manager.get_in_area('update', r): e.handle('update', dt) velocity_iters = 6 position_iters = 2 engine.box2d_world.Step(dt, velocity_iters, position_iters) engine.box2d_world.ClearForces()
def enter(self): un_load_map() e = awesomeengine.get() e.input_manager.set_input_map('default') s = Entity('splash_screens') if not hasattr(e, 'current_map'): s.image = s.screens[0] else: s.image = s.screens[int(e.current_map)] c = Entity('splash_camera') e.entity_manager.add(s, c) l = awesomeengine.layer.SimpleCroppedLayer('draw') cam = Camera(awesomeengine.get().renderer, c, [l], []) self.entities = [s, c] self.cams = [cam] if hasattr(self, 'channel'): self.channel.halt() if not hasattr(e, 'current_map'): self.music = e.resource_manager.get('sound', 'Braveless_Journey_Part1') elif e.current_map == "1": self.music = e.resource_manager.get('sound', 'Braveless_Journey_Part2') else: self.music = e.resource_manager.get('sound', 'Braveless_Journey_Part3') self.channel = self.music.play(loops=-1) self.channel.volume = MUSIC_VOLUME
def handle_event(self, event): e = awesomeengine.get() if event.target == 'MODE': if event.action == 'SAVE': e.entity_manager.save_to_map(e.current_map, lambda x: 'editable' in x.tags) if event.action == 'play': e.change_mode('play') if event.action.startswith('LOAD_'): _, map_name = event.action.split('_') load_map(map_name) if event.action == 'PRINT': mapprinter.print_map('/tmp/map.bmp') elif e.entity_manager.has_by_name(event.target): e.entity_manager.get_by_name(event.target).handle( 'input', event.action, event.value)
def print_map(path): e = awesomeengine.get() entities = e.entity_manager.get_by_tag('editable') min_x = 0 min_y = 0 max_x = 0 max_y = 0 for entity in entities: for attr in ('x', 'y', 'width', 'height', 'colour'): if not hasattr(entity, attr): continue min_x = min(min_x, entity.x - entity.width / 2.0) min_y = min(min_y, entity.y - entity.width / 2.0) max_x = max(max_x, entity.x + entity.width / 2.0) max_y = max(max_y, entity.y + entity.height / 2.0) print min_x, min_y x_offset = -min_x y_offset = -min_y surface = sdl2hl.Surface(int(max_x + x_offset), int(max_y + y_offset), 32, sdl2hl.PixelFormat.rgba8888) renderer = sdl2hl.Renderer.create_software_renderer(surface) renderer.draw_color = (0, 0, 0, 255) renderer.clear() for entity in entities: for attr in ('x', 'y', 'width', 'height', 'colour'): if not hasattr(entity, attr): continue renderer.draw_color = entity.colour screen_x = int((entity.x - entity.width / 2.0) + x_offset) screen_y = int(max_y - (entity.y + entity.height / 2.0)) renderer.fill_rect( sdl2hl.Rect(screen_x, screen_y, int(entity.width), int(entity.height))) renderer.present() surface.save_bmp(path)
def un_load_map(): e = awesomeengine.get() if e.entity_manager.has_by_name('player'): player = e.entity_manager.get_by_name('player') e.entity_manager.remove(player) if e.entity_manager.has_by_name('selector'): selector = e.entity_manager.get_by_name('selector') e.entity_manager.remove(selector) for entity in e.entity_manager.get_by_tag('editable'): e.entity_manager.remove(entity) for entity in e.entity_manager.get_by_tag('kill_me'): e.entity_manager.remove(entity) e.entity_manager.commit_changes()
def find_next_corner(corner, dir): r = rectangle.from_entity(corner) current_tile = corner distance = 0 while True: check_rect = rectangle.Rect(current_tile.x + dir.x * current_tile.width, current_tile.y + dir.y * current_tile.height, 2, 2) next_tiles = awesomeengine.get().entity_manager.get_in_area('road', check_rect) if len(next_tiles) > 0: distance += 1 next_tile = next_tiles.pop() if 'corner' in next_tile.tags and distance > 1: return next_tile else: current_tile = next_tile else: return None
def leave(self): e = awesomeengine.get() for ent in e.entity_manager.get_by_tag('editor'): e.entity_manager.remove(ent)
def handle_event(self, event): if event.target == 'GAME': if event.action == 'play': awesomeengine.get().change_mode('game')
def draw(self): for c in awesomeengine.get().entity_manager.get_by_tag('camera'): c.camera.render()
def update(self, dt): for e in awesomeengine.get().entity_manager.get_by_tag('update'): e.handle('update', dt)
def update(self, dt): for e in awesomeengine.get().entity_manager.get_by_tag('update'): e.handle('update', dt) awesomeengine.get().entity_manager.update_all_positions() if awesomeengine.get().entity_manager.get_by_name('player').supre_dead: awesomeengine.get().change_mode('splash') elif awesomeengine.get().entity_manager.get_by_name( 'player').health <= 0: awesomeengine.get().change_mode('dead') if awesomeengine.get().entity_manager.has_by_name('map_finish'): map_end = awesomeengine.get().entity_manager.get_by_name( 'map_finish') player = awesomeengine.get().entity_manager.get_by_name('player') if (abs(map_end.x - player.x) < 10) and (abs(map_end.y - player.y) < 10): awesomeengine.get().change_mode('splash')
def leave(self): e = awesomeengine.get() for ent in self.entities: e.entity_manager.remove(ent) self.channel.halt()
def handle_event(self, event): if awesomeengine.get().entity_manager.has_by_name(event.target): awesomeengine.get().entity_manager.get_by_name(event.target).handle('input', event.action, event.value)
def leave(self): e = awesomeengine.get() for ent in self.entities: e.remove_entity(ent)
def enter(self): e = awesomeengine.get() self._create_box2d_world(e) e.add_entities_from_map('map1') cornergraph.build_corner_graph() road = list(e.entity_manager.get_by_tag('road')) random.shuffle(road) zone = e.add_entity('pickup-zone', x = road[0].x, y=road[0].y) player = e.add_entity('player', pickup_target=zone) self.entities =[player] corners = list(e.entity_manager.get_by_tag('corner')) # random.shuffle(corners) print len(corners) only_road = list(e.entity_manager.get_by_tag('road') - e.entity_manager.get_by_tag('corner')) random.shuffle(only_road) num_taxi = 65 for tile in only_road[:num_taxi]: self.entities.append(e.add_entity('taxi', x=tile.x, y=tile.y, follow=player)) for tile in corners: target = random.choice(tile.next_corners) angle = (Vec2d(target.x, target.y) - Vec2d(tile.x, tile.y)).angle self.entities.append(e.add_entity('civilian-car', angle=angle, x=tile.x, y=tile.y, ai_mode='roam', next_corner=target)) player_cam_entity = e.add_entity('player-cam', target=player) update_rect = e.add_entity('update-rect',target=player, name='update-rect') awake_rect = e.add_entity('car-sleeper', target=player) score_display = e.add_entity('score-display') fare = e.add_entity('fare') timer = e.add_entity('timer') cash = e.add_entity('cash') dropped = e.add_entity('pasangers-dropped') e.entity_manager.commit_changes() cam = awesomeengine.Camera(e.renderer, player_cam_entity, layers=[awesomeengine.layer.SolidBackgroundLayer((100, 100, 100, 255)), awesomeengine.layer.SimpleCroppedLayer('terrain'), awesomeengine.layer.SimpleCroppedLayer('building'), awesomeengine.layer.SimpleCroppedLayer('draw')], hud=[score_display, timer, fare, cash, dropped]) self.cameras = [cam] self.music = e.resource_manager.get('sound', 'music') self.music.play(loops=-1) self.ambient = e.resource_manager.get('sound', 'ambience') self.ambient.play(loops=-1)
def leave(self): c = awesomeengine.get().entity_manager.get_by_name('play_camera') awesomeengine.get().save_xy = (c.x, c.y) awesomeengine.get().entity_manager.remove(c) m = awesomeengine.get().entity_manager.get_by_name('mouse') awesomeengine.get().entity_manager.remove(m)