_PathBuilder

寻路算法。 全部展开

构造方法展开

  • + function _PathBuilder() : _PathBuilder

    构造一个行走文件的生成器。

    • 返回
    • 新构造的行走文件的生成器。
      • 示例
    •  pathBuilder = _PathBuilder.new()

公共方法展开

  • + function addBlockArea(points : array, groups : array)

    增加不可行走区域。

    • 参数
    • points : _Vector2数组,这些点的凸包,就是新的不可行走区域。
    • groups : 新区域要加入的阻挡片分组(是分组下标的数组)。
  • + function addGroup(group : string, keyword : string)

    为不可行走的阻挡片添加分组,使得_PathFinder:enableGroup()可以启用/禁用它们。

    • 参数
    • group : 分组的名称。
    • keyword : 正则表达式。所有能匹配keyword的_Mesh都会被分到这个组。
  • + function buildWalls()

    重新识别阻挡墙组成的闭合区域。

    • 示例

       pathBuilder:buildWalls()
  • + function clearGroup()

    清空阻挡片的分组。

    • 示例

       pathBuilder:clearGroup()
  • + function delGroup(group : string)

    删除阻挡片组。

    • 参数
    • group : 阻挡片组的名称。
  • + function draw(fill : bool)

    画出各个区域,白色表示选中的区域,蓝色表示还没有标记的区域,红色表示不可行走的区域,绿色表示可行走的区域。

    • 参数
    • fill : 表示是否填充区域。
  • + function getSelectPolygon(walkable : bool) : array

    得到当前选中的阻挡区域。

    • 参数
    • walkable : 如果为true,表示按照可行走的绕行方向返回这个区域,否则按照不可行走的方式返回。
    • 返回值
    • 返回一个Vector3的数组,每个Vector3表示一个点,相邻两个点表示一个边。第一个点和最后一个点也表示一个边,区域时是一个简单多边形,点的顺序表示了这个简单多边形的绕行方向,也就是这个区域的绕行方向。如果区域的绕行方向是顺时针的,表示这个区域可以行走,否则表示该区域时阻挡区域。
  • + function getSelectWalls() : array

    得到当前选中的阻挡区域的阻挡墙(其实是_Orbit)的下标的数组。

  • + function pickWallArea(x : int, y : int) : bool

    拾取一个阻挡墙组成的闭合区域。

    • 参数
    • x, y : 屏幕坐标。
    • 返回值
    • 是否成功拾取了一个区域。
  • + function savePath(filename : string)

    保存地图的路径文件。此文件供_PathFinder使用。

    • 参数
    • filename : 保存的文件名。
    • 示例

       pathBuilder:savePath(filename)
  • + function selectWallArea(rewind : bool, marked : bool) : bool

    用于遍历所有已经标记了的区域,或者遍历所有没有标记的区域。

    • 参数
    • rewind : 如果为true,则把当前选择区域设置为空,否则这个参数不影响函数的行为。
    • marked : 如果为false,则拾取下一个没有标记的区域,否则拾取下一个已经标记的区域

    • 返回值

    • 如果rewind的值为true,则一定返回true。否则返回值表示是否成功拾取了一个区域。
  • + function setBlockArea(keywords : array)

    设置不可行走区域。

    • 参数
    • keywords : string数组。
    • 说明
    • scene中所有名称含有keywords中字符串的_Mesh都为不可行走的。
    • 示例

       pathBuilder:setBlockArea(keywords)
  • + function setScene(scene : _Scene)

    设置要生成的行走文件所对应的场景。

    • 参数
    • scene : 要生成的行走文件所对应的场景。
      • 示例
    •  pathBuilder:setScene(scene)
  • + function setWallThickness(width: number)

    设置阻挡墙的厚度。

    • 参数
    • width : 阻挡墙的厚度。
    • 说明
    • 阻挡墙的厚度默认为1.0,表示阻挡墙向两个相反的垂直反向同时扩展这个值。
    • 示例

       pathBuilder:setWallThickness(1.0)
  • + function setWayWidth(width : number)

    设置路的宽度。

    • 参数
    • width : 不可行走的_Mesh向外扩张的宽度,默认值为2.0。
    • 示例

       pathBuilder:setWayWidth(2.0)
问题反馈(登录才可以发表哦!)