1

火焰组件是否可以将它们附加到其他组件,以便在“父”组件移动时更新它们的位置?

我想要一个 hitbox 组件,并用 xy 偏移量将玩家精灵、名称标签等附加到它上面。

4

1 回答 1

1

您可以使用任何PositionComponent(Flame 中的大多数组件都继承自PositionComponent)并向其添加子级。

因此,例如,我们在这里创建一个简单的正方形,它有两个正方形的子节点,它们与父节点一起移动、缩放和旋转:

class Square extends PositionComponent {
  Square(Vector2 position, Vector2 size, {double angle = 0})
      : super(
          position: position,
          size: size,
          angle: angle,
        );
}

class ParentSquare extends Square with HasGameRef {
  ParentSquare(Vector2 position, Vector2 size) : super(position, size);

  @override
  Future<void> onLoad() async {
    super.onLoad();
    // All positions here are in relation to the parent's position
    add(Square(Vector2(100, 100), Vector2(50, 50), angle: 2));
    add(Square(Vector2(160, 100), Vector2(50, 50), angle: 3));
  }
}

可以在这里看到一个例子。(如果您按下<>,您将看到该示例的代码)

于 2021-10-17T07:56:59.477 回答