将物理体锁定到 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)
我有一个节点想锁定到 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)