что мне нужно добавить, чтобы сделать это добавить 1 в tiltOut - PullRequest
0 голосов
/ 25 октября 2019

это нужно добавить 1 каждый раз, когда мой телефон поворачивается на 360 градусов, этот код запускается, но я переворачиваю свой телефон, и tiltOut остается на 0 все время.

var tiltOut = 0
@State private var prevTime = DispatchTime.now()
func startGyro() {
    motionManager.gyroUpdateInterval = 0.2
    motionManager.startGyroUpdates(to: OperationQueue.current!) { (data, Error) in
        if let myData = data {
            let currTime = DispatchTime.now()
            var dt = 0
            let interval = self.prevTime.distance(to: currTime)
            if case .milliseconds(let value) = interval {
                dt = value
            }
            self.prevTime = currTime
            // assuming rotationRate is in degrees/millisecond.
            let dTheta: CGFloat = CGFloat(myData.rotationRate.y) * CGFloat(dt)

            // If not milliseconds, convert dt to correct time unit
            // If rotationRate is in radians, convert to degrees or make future comparison check for 2*pi instead of 360 degrees
            totalRotation += dTheta
            if totalRotation > 360 - delta && totalRotation < 360 + delta {
                tiltOut = tiltOut + 1
                self.labelText = "\(tiltOut)"
                totalRotation -= 360
            }
        }
    }
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...