仅向节点的边界添加碰撞,允许精灵在节点内自由移动

Add collision to only the borders of a node, allowing a sprite to move freely inside of the node

我正在制作一个游戏,我 "dig" 在地下让球掉下来。是否有可能让这个球在它内部时与节点的边界发生碰撞。根据下图,我的目标是用 touchMoved 绘制一条隧道,让球落入并与隧道表面碰撞。

在 spriteKit 中你有很多方法可以达到同样的效果。

// add your rectangle size for example 
SKPhysicsBody(edgeLoopFrom: scene.frame)

但在你的情况下,就像图片中那样。您必须绘制隧道,您可以使用这些点绘制物理 body 并给它一个 physicsBody,然后将 isDynamic 设置为 false,这意味着 body 将不被其他物质所移动。您仍然可以使用称为 kinematic 的动作来移动它。

// After you draw your physicsBody set the isDynamic physicsBody property to false
tunnel.physicsBody.isDynamic = false

现在 body 会与其他物理体碰撞,但不会受到任何碰撞或重力的影响

我认为你应该使用隧道的两侧来定义 SKShapeNodes,这样当球在隧道中时,它在节点内。

在您的示例图片中,您将有 2 个节点 - 每个黑色区域一个。

然后设置碰撞参数,使球无法穿过形状