Face

.Geom.Mesh. Face

面几何对象. 网格游戏对象使用面.网格由一个或多个面组成,这些面是 用于渲染网络游戏中的网格游戏对象. 一个面由3个顶点实例组成,用于面的3个角和帮助方法 你修改并测试它们.

Constructor

new Face(vertex1, vertex2, vertex3)

Since:
  • 3.50.0
Parameters:
Name Type Description
vertex1 Phaser.Geom.Mesh.Vertex 面的第一个顶点.
vertex2 Phaser.Geom.Mesh.Vertex 面的第二个顶点.
vertex3 Phaser.Geom.Mesh.Vertex 面的第三个顶点.

Members

alpha :number

Since:
  • 3.50.0
设置该面的alpha值. 每个顶点都被赋予相同的值.如果你需要调整每个顶点的阿尔法 然后改用 `Vertex.alpha` 属性. 当得到这张脸的阿尔法时,它将返回阿尔法的平均值 所有三个顶点的分量.
Type:
  • number

bounds :Phaser.Geom.Rectangle

Since:
  • 3.50.0
这张脸的边界. 请务必在使用此属性之前调用 `Face.updateBounds` 方法.
Type:

(readonly) depth :number

Since:
  • 3.50.0
这个面的深度,是所有三个顶点的z分量的平均值. 深度是基于变换后的z值计算的,而不是基于局部z值.
Type:
  • number

vertex1 :Phaser.Geom.Mesh.Vertex

Since:
  • 3.50.0
这个面的第一个顶点.
Type:

vertex2 :Phaser.Geom.Mesh.Vertex

Since:
  • 3.50.0
这个面的第二个顶点.
Type:

vertex3 :Phaser.Geom.Mesh.Vertex

Since:
  • 3.50.0
这个面的第三个顶点.
Type:

x :number

Since:
  • 3.50.0
该面的x坐标,基于该面的中心位置.
Type:
  • number

y :number

Since:
  • 3.50.0
该面的y坐标,基于该面的中心位置.
Type:
  • number

Methods

contains(x, y, calcMatrixopt) → {boolean}

Since:
  • 3.50.0
检查给定的坐标是否在该面内. 您可以选择提供一个转换矩阵.如果给定,面顶点 将首先被转换,然后再对照坐标进行检查.
Parameters:
Name Type Attributes Description
x number 要检查的水平位置.
y number 要检查的垂直位置.
calcMatrix Phaser.GameObjects.Components.TransformMatrix <optional>
比较前应用于顶点的可选变换矩阵.
Returns:
如果坐标位于该面内,则为 `true` ,否则为 `false` .
Type
boolean

destroy()

Since:
  • 3.50.0
销毁此面并清空对顶点的引用.

getInCenter(localopt) → {Phaser.Math.Vector2}

Since:
  • 3.50.0
计算并返回该面的中心位置.
Parameters:
Name Type Attributes Default Description
local boolean <optional>
true Return the in center from the un-transformed vertex positions (`true`), or transformed? (`false`)
Returns:
包含该面的中心位置的矢量2.
Type
Phaser.Math.Vector2

isCounterClockwise(z) → {boolean}

Since:
  • 3.50.0
检查该面中的顶点是否为逆时针方向. 它检查顶点的变换位置,而不是局部位置.
Parameters:
Name Type Description
z number 要测试的z轴值.通常是 `Mesh.modelPosition.z` .
Returns:
`true` if the vertices in this Face run counter-clockwise, otherwise `false`.
Type
boolean

isInView(camera, hideCCW, z, alpha, a, b, c, d, e, f, roundPixels) → {boolean}

Since:
  • 3.50.0
检查该面是否在给定摄像机的视野内. 这个方法是在 `meswebglrenderr` 函数中调用的.它执行以下任务: 首先,在每个顶点上调用 `Vertex.update` 方法.这填充了它们 使用新的翻译值,更新其 `tx` , `ty` 和 `ta` 属性. 然后它测试这个面是否由于阿尔法值而可见,如果不可见,它返回. 此后,如果设置了 `hideCCW` ,则调用 `isCounterClockwise` ,如果没有,则返回. 最后,它将根据新转换的顶点值更新 `Face.bounds` 并返回边界和摄像机世界视图之间的相交测试结果 长方形.
Parameters:
Name Type Description
camera Phaser.Cameras.Scene2D.Camera 要检查的摄像机.
hideCCW boolean 测试verts的逆时针方向?
z number 摄像机的z位置,用于常规武器公约测试.
alpha number 父对象的alpha.
a number 父变换矩阵数据是一个组件.
b number 父变换矩阵数据b组件.
c number 父变换矩阵数据c组件.
d number 父变换矩阵数据d组件.
e number 父变换矩阵数据e组件.
f number 父变换矩阵数据f分量.
roundPixels boolean 绕顶点位置还是不绕?
Returns:
`true` 如果这个脸可以被摄像机看到.
Type
boolean

load(F32, U32, offset, textureUnit, tintEffect) → {number}

Since:
  • 3.50.0
将此顶点的数据加载到给定的类型化数组中.
Parameters:
Name Type Description
F32 Float32Array 一个浮点32数组,用于插入位置,紫外线和单位数据.
U32 Uint32Array 一个Uint32数组,用于插入颜色和alpha数据.
offset number 要插入此顶点的数组的索引.
textureUnit number 当前正在使用的纹理单元.
tintEffect number The tint effect to use.
Returns:
新的顶点索引数组偏移量.
Type
number

transformCoordinatesLocal(transformMatrix, width, height, cameraZ) → {this}

Since:
  • 3.50.0
根据给定矩阵变换所有面顶点,将结果存储在它们的 `vx` , `v` 和 `vz` 属性中.
Parameters:
Name Type Description
transformMatrix Phaser.Math.Matrix4 应用于此顶点的变换矩阵.
width number 父网格的宽度.
height number 父网格的高度.
cameraZ number 网状摄像机的z位置.
Returns:
此人脸实例.
Type
this

translate(x, yopt) → {this}

Since:
  • 3.50.0
将该面的顶点平移给定的量. 调整的是实际的顶点位置,而不是它们的变换位置. 因此,这将直接更新顶点数据.
Parameters:
Name Type Attributes Default Description
x number 水平平移的量.
y number <optional>
0 垂直平移的量.
Returns:
此人脸实例.
Type
this

updateBounds() → {this}

Since:
  • 3.50.0
基于顶点的转换值更新该面的边界. 在访问 `Face.bounds` 属性之前调用此方法.
Returns:
此人脸实例.
Type
this