def walk(self): dx = self.delta_position.x dy = self.delta_position.y new_position = self.position.delta(dx, dy) self.move_position(new_position) self.delta_position = map_position.MapPosition(0, 0)
def _init_terrain(self): floor_width = 19 floor_height = 19 x_room = 1 y_room = 1 w_room = 5 h_room = 5 for x in range(0, floor_width): for y in range(0, floor_height): position = map_position.MapPosition(x, y) new_terrain = wall.Wall(self.level.terrain_map, position) for x in range(0, floor_width): for y in range(0, floor_height): position = map_position.MapPosition(x, y) if x >= x_room and x < x_room + w_room and y >= y_room and y < y_room + h_room: new_terrain = floor.Floor(self.level.terrain_map, position) position = self._drop_stairs() new_terrain = stairs_down.StairsDown(self.level.terrain_map, position)
def _relative_position(self, pos): full_x = self.FIELD_OF_VIEW.width full_y = self.FIELD_OF_VIEW.height half_x = int(self.FIELD_OF_VIEW.width / 2.0) half_y = int(self.FIELD_OF_VIEW.height / 2.0) rel_x = (pos.x - self.player.position.x) + half_x rel_y = (pos.y - self.player.position.y) + half_y if rel_x < 0 or rel_x >= full_x or rel_y < 0 or rel_y >= full_y: return None else: return map_position.MapPosition(rel_x, rel_y)
def reset(self): self.delta_position = map_position.MapPosition(0, 0)
def plan_walk(self, x=0, y=0): self.delta_position = map_position.MapPosition(x, y)
def __init__(self, position_lookup, position): super(PlayerCharacter, self).__init__(position_lookup, position) self.position_lookup = position_lookup self.delta_position = map_position.MapPosition(0, 0)