Акселерометр в качестве контроллера направления


Секреты Iphone, акселерометр в качестве контроллера направления

Конкретное применение акселерометра в качестве контроллера зависит от особенностей механических движений, воспроизводимых в игре. В простейшем случае можно просто взять величину ускорения по одной из осей, умножить ее на определенное число, а затем добавить к координатам управляемого объекта. В сложных играх, где физические свойства моделируются более правдоподобно, приходится корректировать скорость движения управляемого объекта по значениям, получаемым от акселерометра.


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


В следующем приложении мы попробуем перемещать спрайт по экрану устройства iPhone, наклоняя этот мобильный телефон. Это очень простой пример применения акселерометра для получения входных данных. С этой целью воспользуемся функциями из библиотеки Quartz 2D для управления анимацией.


Как правило, для разработки игровых и других прикладных программ, в которых требуется плавная анимация, применяется библиотека OpenGL ES. Но в рассматриваемом здесь приложении ради простоты и сокращения объема кода, не связанного с применением акселерометра, мы воспользуемся библиотекой Quartz 2D. В итоге анимация получится не такой плавной, как при использовании библиотеки OpenGL ES, но в то же время ее организация потребует намного меньших усилий.


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


  • Дата: 28-01-2015, 21:04

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

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



Отзывы о статье: Акселерометр в качестве контроллера направления

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