Упреждающий доступ к данным о движении


Приложения для Ipad, упреждающий доступ к данным о движении

Если вы держите мобильное устройство в устойчивом положении, то эти показания остаются без изменения.

Если у вас имеется устройство iPhone 4 (или в перспективе любое другое мобильное устройство, содержащее гироскоп), то, перемещая его, вы непременно заметите, как изменяются и показания гироскопа. Так, если мобильное устройство стоит прямо (независимо от его ориентации), показания гироскопа устанавливаются на отметке, близкой к нулевой. Если же вы повернете мобильное устройство, то заметите, как показания гироскопа изменятся в зависимости оттого, как он вращается относительно различных осей. Эти показания тотчас возвращаются к нулевой отметке, как только вы прекратите перемещать мобильное устройство.


Выше было написано, как доступ к данным о движении осуществляется путем передачи диспетчеру движения типа CMMotionManager блоков для их вызова при появлении движения. Подобного рода обработка данных управляемого событиями движения вполне пригодна для обычного приложения Cocoa, но иногда ее оказывается недостаточно для приложений с особыми требованиями. Например, интерактивные игры обычно выполняются в непрерывном цикле обработки вводимых пользователем данных, обновления состояния игры и перерисовки экрана. В подобных случаях событийный подход оказывается не вполне пригодным, поскольку он предполагает реализацию объекта, ожидающего события, связанные с движением, запоминающего последние положения, получаемые от датчика по мере их предоставления, а также готового предоставить данные обратно основному игровому циклу по мере надобности.


К счастью, в класс CMMotionManager встроено специальное решение. Вместо передачи блоков мы можем просто дать диспетчеру движения данного класса команду активизировать датчики, используя методы startAccelerometerUpdates и startGyroUpdates. После этого просто считываем показания датчиков в любой удобный момент непосредственно из диспетчера движения!


Внесем изменения в приложение MotionMonitor, чтобы применить данный подход и заодно показать на конкретном примере, каким образом он реализуется на практике. Прежде всего создайте копию папки своего проекта MotionMonitor. Затем введите новую переменную экземпляра и соответствующее свойство в заголовочный файл.


  • Дата: 27-01-2015, 22:33

Предыдущие статьи сайта:

Понравилась статья? Ставь лайки, рассказывай друзьям!



Отзывы о статье: Упреждающий доступ к данным о движении

Технологии, секреты и фишки Apple: Iphone, iPad, iPod