Сначала я вызываю это, когда сцена загружается:
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
}
Это работает, но если телефон не полностью плоский, персонаж будет двигаться. Никто не собирается держать телефон ровно, когда они играют, так что это проблема. Что бы я хотел сделать, чтобы при каждом касании экрана контрольная точка гироскопа была установлена на текущую ориентацию устройства. Я не видел никакой информации об этом уже.