降低加速度计的灵敏度



我正在制作一个正方形从左向右移动的游戏,起初我使用applyForce来做,但我不喜欢结果,因为它不够敏感。然后我换成了velocity:

func motionSensorUpdate(currentTime: CFTimeInterval){
    let square = childNodeWithName(ksquarename) as! SKSpriteNode
    updateSquare(currentTime, Square: square)
    if let data = motionManager.accelerometerData {
        if CGFloat(data.acceleration.x) > 0.2 {
            square.physicsBody!.velocity = CGVectorMake(200, -200)
        } else if CGFloat(data.acceleration.x) < 0.2 {
            square.physicsBody!.velocity = CGVectorMake(-200, -200)
        }
    }
}

现在的问题是它太敏感了。所以,如果我不移动手机,它仍然会移动物体。如何在不返回到applyforce的情况下修复它?

尝试:

let multiplier = 200.0
let x = data.acceleration.x
if x > 0.2 {
    square.physicsBody!.velocity = CGVector(dx: x * multiplier, dy: -200)
} else if x < 0.2 {
    square.physicsBody!.velocity = CGVector(dx: x * multiplier, dy: -200)
}

以上内容将根据设备平铺的程度来改变节点的速度;只是改变CCD_ 4来改变灵敏度。

最新更新