Path

.Curves. Path

路径将多条曲线组合成一条连续的复合曲线. 路径中有多少条曲线或它们是什么类型并不重要. 路径中的曲线不必在前一条曲线结束的地方开始——也就是说,路径不必 必须是一条不间断的曲线.只有曲线的顺序会影响路径上的实际点.

Constructor

new Path(xopt, yopt)

Since:
  • 3.0.0
Parameters:
Name Type Attributes Default Description
x number <optional>
0 路径起点的X坐标或Phaser.Types.Curves.JSONPath.
y number <optional>
0 路径起点的Y坐标.

Members

autoClose :boolean

Since:
  • 3.0.0
Default Value:
  • false
自动关闭路径.
Type:
  • boolean

cacheLengths :Array.<number>

Since:
  • 3.0.0
Default Value:
  • []
路径中每个曲线的缓存长度. 由#getCurveLengths内部使用.
Type:
  • Array.<number>

curves :Array.<Phaser.Curves.Curve>

Since:
  • 3.0.0
Default Value:
  • []
构成此路径的曲线列表.
Type:

name :string

Since:
  • 3.0.0
Default Value:
  • ''
此路径的名称. 默认情况下是空的,Phaser从不填充,这留给开发人员使用.
Type:
  • string

startPoint :Phaser.Math.Vector2

Since:
  • 3.0.0
路径的起点. 这不一定等同于路径中第一条曲线的起点.在空路径中,它也被视为终点.
Type:

Methods

add(curve) → {this}

Since:
  • 3.0.0
将曲线追加到路径的末端. 曲线不必从路径的终点开始,对于空路径,也不必从定义的起点开始.
Parameters:
Name Type Description
curve Phaser.Curves.Curve 要追加的曲线.
Returns:
此路径对象.
Type
this

circleTo(radius, clockwiseopt, rotationopt) → {this}

Since:
  • 3.0.0
创建位于路径末端的圆形椭圆曲线.
Parameters:
Name Type Attributes Default Description
radius number 圆的半径.
clockwise boolean <optional>
false `true` to create a clockwise circle as opposed to a counter-clockwise circle.
rotation number <optional>
0 圆的旋转角度.
Returns:
此路径对象.
Type
this

closePath() → {this}

Since:
  • 3.0.0
确保路径关闭. 封闭路径在同一点开始和结束.如果路径未闭合,将创建一条从终点直接到起点的直线曲线.在检查过程中,路径的实际起点,即.将使用第一条曲线的起点,而不是路径定义的startPoint,这可能会有所不同. 在空路径上调用此方法将导致错误.
Returns:
此路径对象.
Type
this

cubicBezierTo(x, y, control1X, control1Yopt, control2Xopt, control2Yopt) → {this}

Since:
  • 3.0.0
使用p1和p2作为控制点,创建一条三次贝塞尔曲线,从上一个端点开始,到p3结束.
Parameters:
Name Type Attributes Description
x number | Phaser.Math.Vector2 终点的x坐标.或者,如果是矢量2,p1值.
y number | Phaser.Math.Vector2 终点的y坐标.或者,如果是矢量2,p2值.
control1X number | Phaser.Math.Vector2 第一个控制点的x坐标.或者,如果是矢量2,p3值.
control1Y number <optional>
第一个控制点的y坐标.如果矢量2作为前3个参数提供,则不使用.
control2X number <optional>
第二个控制点的x坐标.如果矢量2作为前3个参数提供,则不使用.
control2Y number <optional>
第二个控制点的y坐标.如果矢量2作为前3个参数提供,则不使用.
Returns:
此路径对象.
Type
this

destroy()

Since:
  • 3.0.0
处置此路径,清除其对对象的内部引用,以便对它们进行垃圾收集.

draw(graphics, pointsTotalopt) → {Phaser.GameObjects.Graphics}

Since:
  • 3.0.0
绘制图形游戏对象路径中的所有曲线.
Parameters:
Name Type Attributes Default Description
graphics Phaser.GameObjects.Graphics 要绘制的图形游戏对象.
pointsTotal number <optional>
32 为每条曲线绘制的点数.数字越高,曲线越平滑,但需要更多的处理.
Returns:
被绘制到的图形对象.
Type
Phaser.GameObjects.Graphics

ellipseTo(xRadiusopt, yRadiusopt, startAngleopt, endAngleopt, clockwiseopt, rotationopt) → {this}

Since:
  • 3.0.0
使用给定的参数,创建位于前一个端点的椭圆曲线.
Parameters:
Name Type Attributes Default Description
xRadius number <optional>
0 椭圆的水平半径.
yRadius number <optional>
0 椭圆的垂直半径.
startAngle number <optional>
0 椭圆的起始角度,以度为单位.
endAngle number <optional>
360 椭圆的结束角度,以度为单位.
clockwise boolean <optional>
false Whether the ellipse angles are given as clockwise (`true`) or counter-clockwise (`false`).
rotation number <optional>
0 椭圆的旋转,单位为度.
Returns:
此路径对象.
Type
this

fromJSON(data) → {this}

Since:
  • 3.0.0
从路径配置对象创建路径. 提供的对象应该是Phaser.Types.Curves.JSONPath#toJSON返回的类型.提供格式不正确的对象可能会导致错误.
Parameters:
Name Type Description
data Phaser.Types.Curves.JSONPath 包含路径数据的JSON对象.
Returns:
此路径对象.
Type
this

getBounds(outopt, accuracyopt) → {Phaser.Geom.Rectangle}

Since:
  • 3.0.0
返回一个矩形,其位置和大小与此路径的边界匹配.
Parameters:
Name Type Attributes Default Description
out Phaser.Geom.Rectangle <optional>
存储边界的矩形.
accuracy number <optional>
16 界限计算的准确性.以计算速度为代价,值越高越精确.
Returns:
修改后的矩形或新矩形(如果没有提供).
Type
Phaser.Geom.Rectangle

getCurveLengths() → {Array.<number>}

Since:
  • 3.0.0
返回一个数组,该数组包含每个曲线末端的路径长度. 此方法的结果将被缓存,以避免在后续调用中重新计算.只有当#curves数组的长度发生变化时,缓存才会失效,如果路径中的一条曲线发生了变化,或者删除了一条曲线并在其位置添加了另一条曲线,则会导致潜在的不准确性.
Returns:
包含每条曲线末端路径长度的数组.
Type
Array.<number>

getEndPoint(outopt) → {Phaser.Math.Vector2}

Since:
  • 3.0.0
返回路径的终点. 路径的终点相当于路径中最后一条曲线的终点.对于空路径,结束点在路径定义的#startPoint处.
Parameters:
Name Type Attributes Description
out Phaser.Math.Vector2 <optional>
存储点的对象.
Returns:
修改后的 `out` 对象,或者新的Vector2(如果没有提供).
Type
Phaser.Math.Vector2

getLength() → {number}

Since:
  • 3.0.0
See:
  • #getCurveLengths
返回路径的总长度.
Returns:
路径的总长度.
Type
number

getPoint(t, outopt) → (nullable) {Phaser.Math.Vector2}

Since:
  • 3.0.0
计算路径上给定归一化位置(0和1之间)点的坐标. 该位置相对于整个路径,而不是单个曲线.0.5的位置总是在路径的中间,因此与其起点和终点的距离相等.在有一条曲线的路径中,它将位于曲线的中间;在有两条曲线的路径中,根据它们的长度,它可以在任何一条曲线上.
Parameters:
Name Type Attributes Description
t number 要返回的点的位置,介于0和1之间.
out Phaser.Math.Vector2 <optional>
存储计算点的对象.
Returns:
修改后的 `out` 对象,或者新的 `Vector2` (如果没有提供的话).
Type
Phaser.Math.Vector2

getPoints(divisionsopt) → {Array.<Phaser.Math.Vector2>}

Since:
  • 3.0.0
获取路径上的一系列点.
Parameters:
Name Type Attributes Default Description
divisions number <optional>
12 每条曲线每种分辨率的分割数.
Returns:
向量2对象的数组,包含沿路径的点.
Type
Array.<Phaser.Math.Vector2>

getRandomPoint(outopt) → {Phaser.Math.Vector2}

Since:
  • 3.0.0
在路径的任意位置返回一个随机选择的点.这遵循与 `getPoint` 相同的规则,因为它可以在该路径内的任何曲线上返回一个点. 多次调用此方法时,不能保证点在空间上等距.
Parameters:
Name Type Attributes Description
out Phaser.Math.Vector2 <optional>
应该用于存储结果的 `Vector2` 实例.如果 `undefined` 将创建一个新的 `Vector2` .
Returns:
修改后的 `out` 对象,或者新的 `Vector2` (如果没有提供的话).
Type
Phaser.Math.Vector2

getSpacedPoints(divisionsopt) → {Array.<Phaser.Math.Vector2>}

Since:
  • 3.0.0
将此路径分成一组等距点, 得到的点相对于路径上的点的位置是等距的,但在空间上不一定等距.
Parameters:
Name Type Attributes Default Description
divisions number <optional>
40 将此路径分成的点数.
Returns:
这条路径被细分成的点的列表.
Type
Array.<Phaser.Math.Vector2>

getStartPoint(outopt) → {Phaser.Math.Vector2}

Since:
  • 3.0.0
返回路径的起点.
Parameters:
Name Type Attributes Description
out Phaser.Math.Vector2 <optional>
应该用于存储结果的 `Vector2` 实例.如果 `undefined` 将创建一个新的 `Vector2` .
Returns:
修改后的 `out` 对象,或者新的Vector2(如果没有提供).
Type
Phaser.Math.Vector2

getTangent(t, outopt) → {Phaser.Math.Vector2}

Since:
  • 3.23.0
获取路径上相对位置的单位向量切线.
Parameters:
Name Type Attributes Description
t number 路径上的相对位置,[0..1].
out Phaser.Math.Vector2 <optional>
存储结果的向量.