我正在开发一个 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);
}
}
不幸的是,没有内置的东西可以做到这一点,而且 Forge2D 也只支持凸形状。
很多 SVG 也不支持,因为只支持矩形、多边形和圆形,因此它不能支持圆弧曲线和路径。