将物理体锁定到 X 轴 Spritekit Swift

Locking Physics Body to X Axis Spritekit Swift

我有一个节点想锁定到 x 轴。我对节点有冲动(如下图)

    rectangle.physicsBody!.applyImpulse(CGVectorMake(-11,0))

节点从 x 轴开始,但一旦它与另一个物理物体接触,它就会在 y 轴和 x 轴上飞离。我想知道如何将它锁定到 x 轴,使其不能上下移动。任何帮助将不胜感激。

如果您创建一个 SKNode/SKSpriteNode 等子类,您可以在节点的更新函数中锁定移动。

这样您就可以始终将运动锁定在您想要的轴上。您不会锁定物理体,而是锁定节点本身。

Update

您需要在碰撞发生时使用碰撞委托来存储节点的点。

例如碰撞点 = node.center

你可以像这样将它的位置锁定在一个轴上

func update(dt: NSTimeInterval)
{
    // locks the position to collision points y coordintate
    self.position = CGPointMake(self.position.x, collisionPoint.y) 
}

从场景的

调用这个更新函数

override func update(currentTime: NSTimeInterval)