我正在使用SceneKit和SpriteKit构建iOS游戏。
我正试图沿着y轴移动陀螺仪的更新来移动我的玩家对象。
一切正常,除非用户开始四处走动,并将自己转向另一个位置。
在这种情况下,玩家对象随他移动而且很难使用游戏..
如果y旋转速率与z旋转速率混合......
任何提示?
func startMotionManager() {
isUpdatingPlayer = true
motionManager.startGyroUpdates(to: OperationQueue.current!) { (gyroData, error) in
if let data = gyroData {
self.gyroRotation = data.rotationRate.y
}
}
}
override func didSimulatePhysics() {
let mirrorWidth: CGFloat = 15
let min = (player.size.width / 2) + mirrorWidth
let max = frame.width - (player.size.width / 2) - mirrorWidth
let newPosition = player.position.x + CGFloat(gyroRotation) * 4
if (newPosition < min) {
playerDidCollideWithLeftBarrier()
player.position.x = min
return
} else if (newPosition > max) {
player.position.x = max
playerDidCollideWithRightBarrier()
return
} else {
player.position.x = newPosition
}
}