Adobe air как запустить игру

Обновлено: 07.07.2024

Давно хотел сделать хоть какую-нибудь игрушку для мобильника. Разработка игр – это одно из моих хобби. Времени я уделяю для этого крайне мало, но делаю это с удовольствием.

Раньше разрабатывал небольшие игрушки на PC (так, друзьям и коллегам поиграть), браузерные игры и игры для социальных сетей. Ничего особо выдающегося в этом направлении я не сделал, но неплохо провел время.

Ах да, еще работал в парочке фирм-разработчиков и издателях компьютерных игр программистом, но быстро понял, что увлечение – это одно дело, а работа в крупной фирме в области геймдева – совсем другое.

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

Выбор технологии

Два раза устанавливал Unity, сделал тестовый проект и не знаю – что-то не лежит душа к этой технологии, все мне неудобно и навыворот сделано.

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

Пробовал haxe – очень интересная штука, но собирать приложение долго, часто глючит сборка через Android SDK/NDK (у меня несколько сред разработки по работе со своими хранилищами Android SDK/NDK, возможно они конфликтуют с haxe), да и производительность не сильно лучше Starling для AIR.

Ковырялся я долго в разных движках и в какой-то момент решил просто выпустить ради самого процесса игрушку. Поэтому я обратился к старому другу – AS3 с технологией AIR. Как-то делал небольшие радиоуправляемые игрушки и вместо пульта использовал телефон, на котором были разработаны простенькие интерфейсы джойстика управления по WI-FI. Как раз для этого я использовал AIR, ведь раньше я делал игрушки на Flash, и создание приложения для мобильника на AIR оказалось крайне быстрым и простым.

Stage3D

Векторная анимация никогда не отличалась хорошей производительностью, но небольшое количество анимаций работает отлично. Серьёзной игрушки на этом не сделаешь, да и давно хотел освоить работу с видеокартой через Stage3D. Пробовал еще bitmap blitting как ведет себя на мобильнике – очень не плохо, но так-как это все для личного удовольствия, я решил освоить таки Stage3D.

Сначала я взялся за Starling и Genome2D. Starling оказался очень удобным, но не оправдал моих ожиданий в производительности, если использовать анимации с различными фильтрами отображения, то лучше использовать обычный DisplayList и MovieClip. С Genome2D трудно работать и искать информацию, да и не на много производительнее. Посмотрев исходники, мне стало понятно, что эти движки – очень жесткая реализация возможностей Stage3D. Решил посмотреть на сам Stage3D.

Воодушевил меня на это bunnymark, разработанный на основе примера от Adobe – GPUSprite. Столько спрайтов скачет на экране, мне стало сразу интересно как.

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

Казалось бы, мало, но сделать это не так просто. Есть некоторые проблемы, исходящие из принципа работы с видеокартой. Можно для каждого спрайта выделять свой объект видеокарты, но это работает не так уж быстро, за то можно спокойно накладывать любые пиксельные шейдеры на конкретный спрайт и линейно наращивать количество спрайтов. Побольше спрайтов можно вывести если в одном объекте видеокарты хранить несколько спрайтов, если будем представлять спрайты в виде прямоугольников, то нам понадобится 4 вершины на спрайт. Но есть ограничение в количестве вершин объекта видеокарты, ну и можно привязать ограниченное число текстур (спрайтшитов). Для тех настроек, что применял я для большего охвата устройств получается 16384 спрайтов на объект и ограничился одной текстурой.

Также необходима сортировка по глубине отображения спрайтов. Из этого всего возникает такая картина:

• Перебираем спрайты в очередности прорисовки;
• Для первого спрайта создаем объект видеокарты и привязываем связанный спрайтшит в виде текстуры;
• Смотрим на следующий спрайт: если он из другого спрайтшита, заполнен лимит в 16384 спрайтов в объекте или требует другого пиксельного шейдера для эффектов отображения, то создаем новый объект видеокарты.

Управлять всем этим делом не просто, да и требует времени на обработку. Но можно делать и по-другому – не превращать спрайтшит как есть в текстуру, а создавать текстуру по мере отрисовки необходимыми спрайтами, и здесь свои минусы.

Способов я перебрал много разных, и в каждом были свои плюсы и минусы. В конце концов я убрал почти всю автоматическую обработку ради ручного управления. Сложно в применении, но КПД хороший. Иначе все что-то вроде Starling получается по производительности.

Сделал поддержку покадровой анимации и программной (костной анимации) и небольшие программы для преобразования MovieClip’ов из Adobe Animate в спрайтшиты и файлы описаний программной и покадровой анимации.

Потом хотел для элементов GUI использовать обычный stage, но это тормозило, отвлекся на разработку GPUGUI движка простенького и конвертором в растровые шрифты. С текстом вообще сложно тоже. Для простых редко меняющихся фраз сделал авто формирование спрайта путем отрисовки TextField в BitmapData.

Выводы

Развлекся, конечно, как мог. Десятки велосипедов наделал, но было увлекательно, и это все-таки хобби. Еще было несколько проблем с особенностью поведения Stage3D на Android. Например, при горизонтальной ориентации экрана, если во время игры кто-то позвонит, то после возвращения в игру остается белый экран, ну или такой цвет, какой вы выбрали в настройках фона по умолчанию. Притом можно тыкать на невидимые кнопки, слушать звуки и обычный stage работает, и весь код приложения функционирует, просто ничего не отображается. Об этой проблеме есть статьи в интернете.

Публикация в Google Play тоже веселое занятие, вроде все по-русски написано, но ничего так просто не понять и полезно почитать пояснения на сторонних сайтах опытных людей. Интерфейс китайцы им, наверно, сочиняют.

Для испытания всего этого я разработал простенькую аркаду «Древние Руны» и опубликовал ее на Google Play.

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

Вот, если интересно, пример apk бенчмарка от старлинга (я поменял только статичные картинки на анимации, возможно, там что-то можно ускорить) и пример движка на основе GPUSprite от Adobe с анимацией


В настоящем разделе обсуждаются способы запуска установленного приложения Adobe® AIR®, а также параметры закрытия, и, наконец, соображения относительно закрытия работающего приложения.

Примечание. Для запуска содержимого SWF, работающего в изолированной программной среде приложения AIR, доступны только объекты NativeApplication, InvokeEvent и BrowserInvokeEvent. Содержимое SWF, воспроизводимое приложением Flash Player, браузером, отдельным проигрывателем (проектором) или приложением AIR вне изолированной программной среды, не имеет доступа к эти классам.

Краткое разъяснение и примеры кодов с запуском и завершением работы приложений AIR см. в следующих статьях по быстрому началу работы в центре Adobe Developer Connection:

Вызов приложения

Приложение AIR вызывается, когда пользователь (или операционная система):

запускает приложение с рабочего стола;

Указывает приложение в качестве команды в командной строке.

открывает тип файла, для которого данное приложение является приложением по умолчанию;

щелкает по значку приложения в панели задач Dock в Mac OS (неважно, запущено ли уже приложение);

запускает приложение из программы установки (в конце процесса установки либо после двойного щелчка по файлу AIR уже установленного приложения);

начинает обновление приложения AIR, когда установленная версия сообщает, что уже обрабатывает обновления (с помощью объявления <customUpdateUI>true</customUpdateUI> в файле дескриптора);

в ОС iOS: получает уведомление через службу push-уведомлений Apple (Apple Push Notification service, APNs);

вызывает приложение посредством URL-ссылки;

посещает веб-страницу с элементом Flash badge или приложением, вызывающим метод com.adobe.air.AIR launchApplication() , задающий информацию для приложения AIR. (Дескриптор приложения должен содержать объявление <allowBrowserInvocation>true</allowBrowserInvocation> для вызова обозревателя.)

При вызове приложения AIR среда AIR отправляет объект InvokeEvent типа invoke через единственный объект NativeApplication. Чтобы приложение успело инициализироваться и зарегистрировать прослушиватель событий, события invoke ставятся в очередь, а не сбрасываются. Как только прослушиватель регистрируется, все события в очереди доставляются.

Примечание. При вызове приложения с помощью функции запуска обозревателя объект NativeApplication отправляет событие invoke только в случае, если приложение еще не запущено.

Для получения событий invoke вызовите метод addEventListener() объекта NativeApplication ( NativeApplication.nativeApplication) . Когда прослушиватель события регистрируется на событие invoke , он также получает все события invoke , которые произошли до регистрации. События invoke , поставленные в очередь, отправляются по одному с небольшим интервалом после возвращения результатов вызова метода addEventListener() . Если во время этого процесса происходит новое событие invoke , оно может быть отправлено прежде, чем события из очереди. Постановка событий в очередь позволяет обрабатывать события invoke , которые произошли до выполнения кода инициализации. Помните, что при добавлении прослушивателя далее в процессе выполнения (после инициализации приложения), он все равно будет получать все события invoke , случившиеся с момента запуска приложения.

Запускается только один экземпляр приложения AIR. При повторном вызове уже запущенного приложения среда AIR отправляет новое событие invoke работающему экземпляру. Приложение AIR должно ответить на событие invoke соответствующим действием (например, открыть документ в новом окне).

Объект InvokeEvent может содержать любые аргументы, передаваемые приложению, а также каталог, из которого приложение запускается. Если приложение запущено в результате открытия ассоциированного с ним типа файла, то полный путь к файлу включается в аргументы командной строки. Точно так же, если приложение запущено в результате обновления, предоставляется полный путь к файлу обновления AIR.

Если в одной операции открывается сразу несколько файлов, в Mac OS X создается один объект InvokeEvent. Каждый файл включается в массив arguments . В операционных системах Windows и Linux отдельный объект InvokeEvent создается для каждого файла.

Приложение может обрабатывать события invoke путем регистрации прослушивателя с объектом NativeApplication:

и определения прослушивателя событий:

Захват аргументов командной строки

Аргументы командной строки, ассоциируемые с вызовом приложения AIR, доставляются в объект InvokeEvent, который отправляется объектом NativeApplication. Свойство InvokeEvent arguments содержит массив аргументов, передаваемых операционной системой при вызове приложения AIR. Если аргументы содержат относительные пути к файлам, то их обычно можно обработать с помощью свойства currentDirectory .

Аргументы, передаваемые приложению AIR, обрабатываются как строки, разделенные пробелами, если только они не заключены в двойные кавычки:


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

Например, на Android, пользователи могут устанавливать приложения с Android Маркета. Если в разделе «Настройки приложения» разрешена установка приложений из неизвестных источников, пользователи могут устанавливать приложения по нажатию ссылки на веб-страницы, а также скопировав пакет приложение на устройство и открыть его. Если пользователь пытается установить приложение Android, но еще не установил среду выполнения AIR, он автоматически будет перенаправлен на Маркет, где он сможет установить среду выполнения.

В iOS предусмотрено два способа распространения приложения для конечных пользователей. Основным методом распространения является Apple App Store. Также можно использовать метод специального распространения, чтобы разрешить определенному числу пользователей установку приложения без перехода в App Store.

Установка среды выполнения AIR и приложений для разработки

Поскольку приложения AIR на мобильных устройствах устанавливаются как собственные пакеты, для установки приложений для тестирования можно пользоваться стандартными инструментами платформы. Для установки среды выполнения AIR и приложений AIR можно использовать команды ADT, если они поддерживаются. В настоящее время данный подход поддерживается на Android.

В iOS установку приложения для тестирования можно выполнить с помощью iTunes. Протестированные приложения должны быть подписаны с помощью сертификата для подписи кода Apple, выданного специально для разработки приложений, и упакованы с помощью профиля поставки. Приложение AIR в iOS представляет собой автономный пакет. Отдельная среда выполнения не используется.

Установка приложений AIR с помощью ADT

При разработке приложений AIR с помощью ADT можно устанавливать и удалять среду выполнения и приложения (эти команды также могут быть интегрированы в ИСР, поэтому запускать ADT отдельно не потребуется).

Среду выполнения AIR можно установить на устройство или эмулятор с помощью утилиты AIR ADT. При этом требуется установить SDK для устройства. Используйте команду -installRuntime :

Если параметр -package не указан, пакет среды выполнения, предназначенный для устройства или эмулятора, выбирается из списка доступных в установленном AIR SDK.

Чтобы установить приложение AIR в ОС Android или iOS (AIR 3.4 и более поздних версий), воспользуйтесь похожей командой -installApp :

Значение аргумента -platform должно соответствовать устройству, на которое выполняется установка.

Примечание. Существующие версии среды выполнения AIR и приложение AIR необходимо удалить перед повторной установкой.

Установка приложений AIR на устройства с iOS с использованием программы iTunes

Чтобы установить приложение AIR на устройство iOS для тестирования, выполните следующие действия.

Откройте приложение iTunes.

Если это еще не сделано, добавьте профиль обеспечения данного приложения в iTunes. В iTunes выберите «Файл » > «Добавить в медиатеку». Затем выберите файл профиля обеспечения (с типом файла mobileprovision).

В некоторых версиях iTunes не выполняется замена, если уже установлена та же версия приложения. В таком случае удалите приложение с устройства и из списка приложений в iTunes.

Дважды щелкните IPA-файл для приложения. Он должен быть указан в списке приложений в iTunes.

Подключите устройство к порту USB компьютера.

В iTunes перейдите на вкладку «Программа» для устройства и проверьте, что программа выбрана в списке устанавливаемых.

Выберите устройство в списке на левой панели программы iTunes. Затем нажмите кнопку «Синхронизировать». По окончании синхронизации приложение Hello World появится на устройстве iPhone.

Если новая версия не установилась, удалите приложение с устройства и из списка приложений в iTunes, а затем повторите процедуру. Такое происходит, если текущая установленная версия использует тот же идентификатор приложения и номер версии.

Запуск приложения AIR на устройстве

Установленные приложения AIR запускаются через пользовательский интерфейс на устройстве. Приложения также можно запускать удаленно с помощью утилиты AIR ADT, если эта функция поддерживается:

Чтобы запустить приложение, для аргумента -appid следует указать идентификатор приложения AIR. Используйте значение, указанное в дескрипторе приложения AIR (без префикса air., который добавляется при упаковке).

Если подключено и запущено только одно устройство или эмулятор, флаг -device можно не указывать. Значение аргумента -platform должно соответствовать устройству, на которое выполняется установка. В настоящее время поддерживается только значение android.

Удаление среды выполнения AIR и приложений

Для удаления приложений можно использовать стандартные средства, доступные в операционной системе устройства. Кроме того, для удаления среды выполнения и приложений AIR можно использовать утилиту AIR ADT. Для удаления среды выполнения используйте команду -uninstallRuntime :

Для удаления приложений используйте команду -uninstallApp :

Если подключено и запущено только одно устройство или эмулятор, флаг -device можно не указывать. Значение аргумента -platform должно соответствовать устройству, на которое выполняется установка. В настоящее время поддерживается только значение android.

Настройка эмулятора

Для запуска приложения AIR на эмуляторе устройства обычно требуется с помощью SDK для этого устройства создать и запустить экземпляр эмулятора на компьютере. Затем можно установить версию эмулятора для среды выполнения AIR и приложение AIR в эмулятор. Обратите внимание, что приложения в эмуляторе обычно работают намного медленнее, чем на реальном устройстве.

Создание эмулятора Android

Запустите Android SDK и приложение AVD Manager:

В ОС Windows запустите файл SDK Setup.exe из корневого каталога Android SDK.

В ОС Mac OS запустите приложение aindroid из подкаталога tools в каталоге Android SDK.

Выберите пункт «Available Packages» (Доступные пакеты). Отобразится список доступных Android SDK.

Выберите совместимый Android SDK (Android 2.3 или более позднюю версию) и нажмите кнопку «Install Selected» (Установить выбранное).

Выберите пункт «Virtual Devices» (Виртуальные устройства) и нажмите кнопку «New» (Создать).

Установите следующие настройки:

Имя виртуального устройства

Целевой API-интерфейс, например Android 2.3, API level 8

Размер SD-карты (например 1024)

Схема оформления (например, Default HVGA)

Обратите внимание, что создание виртуального устройства может занять длительное время, в зависимости от конфигурации системы.

После этого можно будет запустить новое виртуальное устройство.

Выберите виртуальное устройство в приложении AVD Manager. Виртуальное устройство, которое было создано ранее, должно быть представлено в списке.

Выберите виртуальное устройство и нажмите кнопку «Start» (Начать).

На следующем экране нажмите кнопку «Launch» (Запуск).

На компьютере откроется окно эмулятора. Это может занять несколько секунд. Инициализация операционной системы Android может занять некоторое время. Установить пакет приложения на эмулятор можно с помощью команд apk-debug и apk-emulator. Приложения, упакованные для целевой платформы apk, не работают в эмуляторе.

image

Цель данного обзора — дать описания 20-ти самым популярным AIR приложениям.

Рабочая среда Adobe® AIR™ позволит вам использовать ваши любимые web-приложения в любое время. Так как для функционирования приложений Adobe AIR на вашем компьютере наличие web-браузера не требуется, вы сможете использовать все преимущества настольных приложений.

Такие компании как eBay* и AOL* используют Adobe AIR для создания эффектных приложений, которые дают вам возможность воспользоваться предлагаемыми им сервисами непосредственно на рабочем столе.

Другими словами, Adobe AIR делает приложения более удобными, мощными и эффективными.

Для установки приложений обязательно нужно установить Adobe AIR (желательно последнюю версию).

Процесс установки Adobe AIR прост. Возможно, вы уже произвели его установку. В противном случае вы сможете автоматически это сделать при загрузке приложения* на базе Adobe AIR. Разрешите программе продолжить установку. Больше от вас ничего не потребуется. В некоторых условиях вы можете произвести установку Adobe AIR вручную.

image


Загрузив последнюю версию Desktop виджета AOL Music Featuring Top 100, вы получите доступ к «горячему» видео, музыке, etc.

image

eBay Desktop представляет собой приложение, построенное на AIR, которое обеспечивает возможность делать покупки в eBay, ведущем мировом онлайн рынке.

image

Agile Agenda — программа является утилитой планирования проектов. Программное обеспечение способно к динамической адаптации к меняющимся условиям, которые происходят во время жизненного цикла проекта.

Agile Agenda поддерживает обмен данными через XML, PDF.

image

Icon Generator представляет собой маленькое приложение, которое позволяет создавать иконки в стиле Web 2.0, всего в 3 шага.
*Выберите цвет
*Введите символы
*Сохраните

image

Получите лучшие данные о погоде на рабочем столе.

image

Интерактивное приложение для создания «гармоничного разнообразия цветов» (как-то так).

image

Настраиваемый, кросс-платформенный Desktop Player.

image

TweetDeck позволяет следить за тем, что происходит сейчас, соединяя вас с вашими контактами через Twitter, Facebook и многое другое.

image

EarthBrowser является инновационным моделированием Земли, которое позволяет легко ориентироваться 3-ёх мерном мире, в режиме реального времени. Live землетрясения, спутники, веб-камеры, извержения вулканов и текущая анимация облаков.

image

Klok является личным отслеживанием работы.
Как работает? Нажимаем кнопку когда начинаем работать, затем нажимаем когда закончили какую-либо работу — таким образом можно понять насколько долго мы выполняем ту или иную работу/задачу.

image

Color Browser предназначен для организации любимых цветовых палитр.

image

Наслаждайтесь Java презентациями в полноэкранном режиме.

image

DeskTube это приложение для YouTube.
Возможность поиска / просмотра / загрузки видео, просмотра комментариев, просмотра персонального списка воспроизведения, просмотра личных подписок, запись видео, просмотр обновлений Twitter, Facebook, а так же просмотр видео потока HD.

image

Не можете найти все ваши ярлыки? Не беспокойтесь. Храните их в одном месте!
Представляем Adobe App, удивительный новый инструмент от Adobe, который позволяет собрать ярлыки в одном месте, которые нужны на вашем рабочем столе всегда.

image

Скачайте это приложения для мгновенного доступа к полному архиву прошлых и нынешних лауреатов, ежегодного списка «Самых Влиятельных Людей Мира».
Прочтите статьи, просмотрите фотографии/видео и многое другое.

image

The Adobe Developer Connection Developer Desktop (ADC Desktop) представляет собой приложение Adobe AIR, которое обеспечивает целый ряд полезных ресурсов для разработчиков. Вы можете легко отслеживать и получать уведомления на рабочий стол о изменениях, ошибках.
Кроме того, можно изучить и отслеживать агрегированные компоненты Flex на рабочем столе, или вы можете использовать встроенный читатель RSS для просмотра новостей и каналов, а также получить обновления, как только они произойдут. Наконец, вы можете найти Adobe групп пользователей и текущие события через группу пользователей и события на карте.

image

image

RichFLV let`s позволяет редактировать FLV файлы, часть функций:
* Читать FLV Метаданные
* Чтение / Изменение / Удаление cuepoints
* FLVs Cut
* Преобразование звука из FLV в MP3
* Преобразование FLV в SWF
* Изменение звука FLV файлов

image

1) Измерение объектов экрана в пикселях с использованием как мыши, так и клавиатуры.
2) Предварительный просмотр дизайна шкуры и пресетов.
3) Multi-Screen Support.
4) Автоматическое обновление.
5) Быстрое руководство.

Читайте также: