Создание простого приложения на AIR for Android: Часть 2

Привет. В данной статье я расскажу вам про тестовое приложение от Adobe для Android, а так же расскажу как работать с акселерометром в Adobe AIR for Android. Так же попутно мы проверим в деле Box2D (увы, все плохо).

Тестовые приложения.

Для начала, о тестовых приложениях. Этот список содержит устройства, на которых поддерживается Flash и AIR, но бывает и так, что устройство не из списка, тоже может иметь поддержку этих технологий. Как можно быстро узнать, поддерживаются приложения на AIR или нет? Обязательное условие это минимальная версия Android2.2. Далее нужно поставить следующие приложения:

1. Adobe AIR for Android:
Создание простого приложения на AIR for Android: Часть 2

2. Tour de Mobile Flex:
Создание простого приложения на AIR for Android: Часть 2

Tour de Mobile Flex является демонстрационным приложением, которая покажет все, что можно AIR “выжать” из вашего устроства. Если оно запустилось – уже хорошо. Дальше все уже можно посмотреть в самом приложении. Есть так же еще один вариант – игра Circ написана одним из работников Adobe из офиса в Чехии:

3. Circ:
Создание простого приложения на AIR for Android: Часть 2

То есть это бесплатный, реальный пример приложения на AIR for Android прямиком из Маркета. Если все это запускается и играется, то ваше устройство “готово”, чтобы под него можно было спокойно разрабатывать игры.

Акселерометр.

Сразу качаем архив с кодом проекта, распаковываем его в нужной папке и настраиваем проект в Adobe Flash Builder 4.5.

Текущий код приложения отличается от кода из прошлой статьи всего в нескольких местах. Хотя кода стало по больше. Разный инструментарий вынесен в отдельный файл U.as, а в Main.as добавлена инициализация “мира” Box2D, функция обновления физического мира, и две функции – создание квадратика и кружка. Приводить код всего этого сюда нет смысла, лучше расскажу про акселерометр.

Открываем Main.as и идем на 96-ю строку:

То есть, если в нашем массиве с настройками указано, что акселерометр у нас поддерживается, то мы создаем объект акселерометра, устанавливаем ему интервал для обновления состояния и навешиваем листнер на событие обновления. А функция createPhisics создает “мир” Box2D.

Теперь посмотрим на код листнера:

В нем мы берем отклонения акселерометра, вычисляем угол для плоскости oXY, выводим данный угол на экран. Далее мы высчитываем новый вектор для гравитации и меняем ее у “мира” Box2D.

Самая соль тут в этих строках:

Расположите ваше устройство экраном к себе и перпендикулярно столу/полу. В таком положении Ось oX проходит параллельно полу, ось oY перпендикулярно, а oZ направлена на вас из экрана. Отсюда и получаем три отклонения.

Так как наш “физический” мир “существует” только в плоскости oXY, то accelerationZ мы здесь не используем.

В результате мы имеем приложение с несколькими квадратами и кругами, которые падают по физике Box2D с вектором гравитации, который зависит от углов наклона вашего устройства.

Получившаяся демка:

Создание простого приложения на AIR for Android: Часть 2

Все бы ничего, но мы снова сталкиваемся с тормозами Adobe AIR под Android. Простое приложение с 10-ю элементами выдает 15-20fps… это очень мало – ничего серьезного не сделать… А ведь на Box2D сделаны Angry Birds

Похожие записи:

Leave a Reply

Your email address will not be published. Please enter your name, email and a comment.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">