多个 SKPhysicsBody 来自带有 alpha 的纹理

More than one SKPhysicsBody from texture with alpha

我正在尝试从动态包含 alpha 值的纹理创建 SKPhysicsBody。不幸的是,SKPhysicsBody 仅由纹理中的一块创建。我该如何解决?

创建 SKPhysicsBody 的方式如下:

physicsBody = SKPhysicsBody(texture: texture!, size: size)

编辑:

Before

After

为了完整起见,我现在找到了解决该问题的方法。

遗憾的是,我不能只使用纹理中的这个方便的功能创建 SKPhysicsBody。一旦纹理包含多个形状,它将不再起作用。

基本上我所做的是手动创建初始路径,对路径本身进行所有计算并将它们全部存储,然后在每次更改后从该路径重新创建 SKPhysicsBodies。

我使用开源剪辑库 (Clipper),我将路径传递给剪辑,然后返回一个二维 CGPoint 数组,其中包含来自所有形状的所有 paths/polygons。我使用此路径创建新的 SKPhysicsBodies 并将它们与 SKPhysicsBody(bodies: [SKPhysicsBody]).

合并