当 Parent 和 Child 节点各自具有 SKPhysicsBody 时出现问题

Having problems with a Parent and Child nodes when they each have an SKPhysicsBody

我在屏幕上方设置了一个 SKSpriteNode,因此它会从上方掉落。所以它确实有一个受重力影响的 SKPhysicsBody。但这只是它从上面掉下来的,不会有碰撞检测。节点本身有6 children 均匀分布。

但是我需要每个 children 都能够检测到碰撞。所以我给他们一个 SKPhysicsBody。当我这样做时,它们似乎与 parent 节点分离并造成混乱。将 affectedByGravity 设置为 false 不会执行任何操作。有没有我遗漏的步骤,可以将他们固定到位 parent?

parent个SKNode的原因是因为会有多个,并且更容易移动每个SKNode的所有children,以及一次摧毁它们。

左边是我想要的,右边是当我给每个 child 自己的 SKPhysicsBody 时发生的混乱。

我应该补充一点,如果我将 children 的 isDynamic 设置为 false,那么他们会将 parent 保持在屏幕上方,这样它就不会掉落。

我的第一个问题是类别掩码设置不正确。

我确保 parent 和 children 都属于同一 类别,

然后我使用 SKContraint 基本上将每个 child 钉在 parent 中的位置。目前它似乎可以正常工作。

下面的代码是每个 child 创建时的 运行。

let rangeX       = SKRange(lowerLimit: indexSpacing, upperLimit: indexSpacing)
let contraintX   = SKConstraint.positionX(rangeX)
let rangeY       = SKRange(lowerLimit: (self.size.height/2), upperLimit (self.size.height/2))
let contraintY   = SKConstraint.positionY(rangeY)
self.constraints = [contraintX, contraintY]