示例#1
0
    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)
示例#2
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)
示例#3
0
    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)
示例#4
0
 def reset(self):
     self.delta_position = map_position.MapPosition(0, 0)
示例#5
0
 def plan_walk(self, x=0, y=0):
     self.delta_position = map_position.MapPosition(x, y)
示例#6
0
 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)