如何使用Flame在Forge2D中为SVG创建碰撞形状?

问题描述 投票:0回答:1

我正在开发一个 Flutter 项目,利用 Flame 游戏引擎和 Forge2D 库进行物理模拟。我需要为游戏中的 SVG 元素添加碰撞。我已经知道如何在 Flame 中渲染 SVG,但不确定如何在 Forge2D 中为 SVG 创建碰撞形状。有没有办法基于 SVG 创建碰撞形状?任何示例或建议都会非常有帮助。

谢谢!

我试图找到 SvgShape 但没有找到

@override
  Body createBody() {
    final shape = CircleShape();
    shape.radius = size.x;

    final fixtureDef = FixtureDef(
      shape,
      userData: this, 
      restitution: 1,
      density: 15,
      friction: 1,
    );

    final bodyDef = BodyDef(
      position: initialPosition,
      angle: 0,
      type: BodyType.dynamic,
      gravityScale: Vector2.all(3.5),
    );
    return world.createBody(bodyDef)..createFixture(fixtureDef);
  }
}
flutter dart svg flame forge2d
1个回答
1
投票

不幸的是,没有内置的东西可以做到这一点,而且 Forge2D 也只支持凸形状。

很多 SVG 也不支持,因为只支持矩形、多边形和圆形,因此它不能支持圆弧曲线和路径。

© www.soinside.com 2019 - 2024. All rights reserved.