多边形中的六边形组件-火焰(颤动)



我不知道如何为PolygonComponent绘制六边形。

我在doc中找到了一些东西,但我不明白该为六边形做什么。

多边形组件是ShapeComponents中最复杂的,因为您必须定义多边形的所有"角"。您可以通过两种不同的方式创建多边形组件,或者使用默认构造函数,该构造函数接受Vector2的列表,其中每个Vector2都应该在-1.0和1.0之间,该列表描述了组件大小从中心到边缘的长度比例。因此[Vector2(1.0,1.0(,Vector2。记住以逆时针方式定义列表(如果您在屏幕坐标系中认为y轴翻转,则为顺时针(。

final vertices = ([
Vector2(0.0, 0.9),  // Middle of top wall
Vector2(-0.9, 0.0), // Middle of left wall
Vector2(0.0, -0.9), // Middle of bottom wall
Vector2(0.9, 0.0),  // Middle of right wall
]);
final diamond = PolygonComponent(
normalizedVertices: vertices,
size: Vector2(200, 300),
position: Vector2.all(500),
)

对于一个六边形,需要6个等距的顶点。

以下示例适用于Flame v1.4,将创建一个偶数六边形,其大小根据传入的size参数确定:

PolygonComponent.relative(
[
Vector2(0.0, -1.0),
Vector2(-1.0, -0.5),
Vector2(-1.0, 0.5),
Vector2(0.0, 1.0),
Vector2(1.0, 0.5),
Vector2(1.0, -0.5),
],
parentSize: size,
);

最新更新