【发布时间】:2015-06-07 07:21:33
【问题描述】:
我正在制作一个游戏,它有一个从左到右移动的正方形,起初我使用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 的情况下修复它?
【问题讨论】:
-
我不确定在这里使用
velocity是否合适 - 您是否看到节点根本没有移动的结果,然后在您将手机倾斜超过阈值时突然移动?你本可以增加你施加的力量的力量...... -
我用力时,反应不快。例如,如果我向左倾斜,然后我想快速向右移动,所施加的力会模仿一个真实的物体,这不是我想要的。使用速度它可以快速响应,但它非常敏感,即使我停下来,方块也会向左或向右移动,经常曲折,感觉很奇怪。
标签: ios swift sprite-kit accelerometer core-motion