Как вы можете откалибровать гироскоп при использовании CMMotionmanager? - PullRequest
0 голосов
/ 14 апреля 2019

Сначала я вызываю это, когда сцена загружается:

 motionManager.startDeviceMotionUpdates()

, а затем в методе обновления я использую данные для перемещения игрового персонажа:

 if let data = motionManager.deviceMotion?.attitude {

        let currentX = character.position.x
        destX = currentX + CGFloat((data.pitch) * 30)
        character.position.x = destX

        let currentY = character.position.y
        destY = currentY + CGFloat((data.roll) * 30)
        character.position.y = destY

    }

Это работает, но если телефон не полностью плоский, персонаж будет двигаться. Никто не собирается держать телефон ровно, когда они играют, так что это проблема. Что бы я хотел сделать, чтобы при каждом касании экрана контрольная точка гироскопа была установлена ​​на текущую ориентацию устройства. Я не видел никакой информации об этом уже.

...