Je construis un jeu qui nécessite que l'utilisateur pointe son appareil vers le bas puis devant lui. Comment détecter lorsque l'utilisateur pointe son appareil vers le bas ou devant lui, en utilisant les capteurs gyroscopiques et accélérométriques de l'appareil?comment détecter si le périphérique pointe dans une certaine direction?
-1
A
Répondre
0
Vous pouvez utiliser CoreMotion avec Accelerometer. Essayez ceci:
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
}
}
Vérifiez la valeur que vous obtenez dans l'accélération du Z. Si c'est positif, cela signifie que votre téléphone est face cachée. Je n'avais pas d'appareil donc testé sur simulateur. Vérifiez la valeur positive ou négative de Z pour confirmer. Edit: Mise à jour avec le code Swift.
Fait Eric. Impossible de le tester sur un appareil. –