Как определить, указывает ли устройство в определенном направлении?
Я строю игру, в которой пользователь должен направить свое устройство вниз, а затем перед ним. Как мне определить, когда пользователь направляет свое устройство вниз или перед собой, используя гироскоп и датчики акселерометра устройства?
1 ответ
Вы можете использовать CoreMotion с акселерометром. Попробуй это:
import Foundation
import CoreMotion
class CoreViewController: UIViewController {
let motionManager = CMMotionManager()
override func viewDidLoad() {
super.viewDidLoad()
motionManager.deviceMotionUpdateInterval = 0.01
motionManager.startDeviceMotionUpdates(to: OperationQueue.current!)
{ deviceManager, error in
print(deviceManager?.userAcceleration.z)
print("Test") // no print
}
print(motionManager.isDeviceMotionActive) // print false
}
}
Проверьте значение, которое вы получаете в ускорении Z. Если оно положительное, значит, ваш телефон закрыт. У меня не было устройства, поэтому я проверил его на симуляторе. Проверьте положительное или отрицательное значение Z для подтверждения. Редактировать: Обновлено с кодом Swift.