仅将碰撞添加到节点的边界,允许精灵在节点

时间:2017-07-22 19:51:28

标签: ios swift sprite-kit skphysicsbody

我正在制作一个游戏,我在其中“挖掘”地下以让球落下。是否有可能允许这个球在其内部与节点的边界碰撞。根据下图,我的目标是用touchMoved绘制一个隧道,让球在与隧道表面碰撞时落入。

Example of goal

2 个答案:

答案 0 :(得分:2)

我认为您应该使用隧道的两侧来定义SKShapeNodes,以便当球在隧道中时,不在节点内

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

然后设置碰撞参数,使球不能通过形状

答案 1 :(得分:0)

你有很多方法可以在spriteKit中实现同样的目的。

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

但在您的情况下,因为它在图像中。您必须绘制隧道,您可以使用点绘制物理主体并为其指定 physicsBody ,然后将isDynamic设置为false,这意味着主体不会被其他物理主体移动。您仍然可以使用名为 kinematic 的操作移动它。

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

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