Получить абсолютное вращение с помощью CMDeviceMotion?
Я создаю простую игру с использованием Sprite Kit, экран не поворачивается, но я хочу знать, под каким углом пользователь держит телефон для игрового механика.
Значения, которые я хочу получить, могут быть легко получены с помощью акселерометра (x, y), но я считаю, что это ненадежно, поэтому я пытаюсь архивировать лучшие результаты сCMDeviceMotion
, Я мог бы получить эквивалентdata.acceleration.y
но я не могу понять, как получить эквивалентdata.acceleration.x
.
if let data = motionManager.accelerometerData? {
let y = CGFloat(data.acceleration.y)
let x = CGFloat(data.acceleration.x)
}
// Device Motion
if let attitude = motionManager.deviceMotion?.attitude? {
let y = CGFloat(-attitude.pitch * 2 / M_PI) // This matches closely with data.acceleration.y
let x = ??????????
}
Как рассчитать эквивалентdata.acceleration.x
с помощьюCMDeviceMotion
?