如何使用加速度计(Swift)移动形状节点X和Y

时间:2015-08-10 15:20:40

标签: swift sprite-kit

我一直在四处寻找,找到一个有效的方法来解决这个问题。

如何使用Swift中的加速度计移动圆形节点。我需要它向左,向右,向上和向下移动,因此当设备倾斜时,X和Y坐标需要改变。

我在网上尝试了很多方法而且他们没有工作,他们只是以一种方式移动圆圈或者圆圈走错了等等。

提前致谢!

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

var manager = CMMotionManager()
var destX:CGFloat  = 0.0


Player.position = CGPointMake(self.size.width/2, self.size.height/6.5)
self.addChild(Player)


manager.startAccelerometerUpdates()
manager.accelerometerUpdateInterval = 0.1
manager.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue()){
    (data, error) in

    let currentX = self.Player.position.x

    if data!.acceleration.x < 0 {
        self.destX = currentX + CGFloat(data!.acceleration.x * 1000)
    }

    else if data!.acceleration.x > 0 {
        self.destX = currentX + CGFloat(data!.acceleration.x * 1000)
    }
}


let action = SKAction.moveToX(self.destX, duration: 0.5)
self.Player.runAction(action)

只需对y使用相同的代码。如果您有任何问题,请告诉我们!