Книга: iOS. Приемы программирования
18.0. Введение
18.0. Введение
Устройства с операционной системой iOS, в частности iPhone и iPad, обычно оборудованы акселерометром. На некоторых устройствах, например новых iPhone и iPad, есть также гироскоп. Прежде чем пытаться использовать в ваших приложениях для iOS акселерометр или гироскоп, нужно проверить доступность (наличие) этих сенсоров на том устройстве, на котором работает ваша программа. В разделах 18.1 и 18.2 описаны приемы, которые можно использовать для обнаружения акселерометра или гироскопа. Устройства iOS, оснащенные гироскопом, могут регистрировать движение вдоль шести осей.
Рассмотрим ситуацию, которая позволяет оценить, насколько полезен гироскоп. Например, акселерометр не может обнаружить вращение устройства вокруг его вертикальной оси, если вы крепко держите устройство в руках, сидите в компьютерном кресле и крутитесь на нем по часовой стрелке или против часовой стрелки. Относительно пола в вашей комнате или относительно планеты Земля устройство вращается вокруг вертикальной оси, но оно при этом не вращается вокруг собственной оси Y, проходящей по вертикали через центр устройства, то есть акселерометр не обнаружит никакого движения.
Гироскоп, имеющийся в некоторых устройствах с iOS, может регистрировать такие движения. И мы можем писать более гладкие и безошибочные программы обнаружения движения. Обычно такие возможности полезны в играх, так как при их программировании разработчику зачастую требуется узнать не только о том, как устройство движется по осям X, Y и Z — эти данные можно получить от акселерометра, — но и о том, движется ли устройство по этим осям относительно Земли. А вот для этого уже нужен гироскоп.
Программист может пользоваться фреймворком Core Motion для доступа к информации, поступающей как от акселерометра, так и от гироскопа (при их наличии). Фреймворк Core Motion применяется во всех разделах этой главы. При работе с новым компилятором LLVM, чтобы связать новое приложение с системным фреймворком, вам всего лишь потребуется импортировать этот фреймворк в верхней части заголовочных файлов и файлов реализации, а компилятор сам выполнит все необходимые операции для импорта фреймворка в приложение.
Эмулятор iOS не может имитировать работу акселерометра и гироскопа. Правда, в эмуляторе iOS можно имитировать встряхивание, выбрав команду Hardware — Shake Gesture (Оборудование — Жест встряхивания) (рис. 18.1).
Рис. 18.1. Параметр Shake Gesture (Жест встряхивания) в эмуляторе iOS