Как определить, указывает ли устройство в определенном направлении?

Я строю игру, в которой пользователь должен направить свое устройство вниз, а затем перед ним. Как мне определить, когда пользователь направляет свое устройство вниз или перед собой, используя гироскоп и датчики акселерометра устройства?

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.

Другие вопросы по тегам