Оптимизация местоположения кнопок и спрайтов

Добрый день!

Прошел уже почти год с релиза моей первой флеш-игры. С тех пор я выпустил уже вторую игру, и вот теперь разрабатываю игру для IOS.

При разработке первой игры я очень много времени потратил на оптимизацию расположения кнопок и спрайтов в информационных экранах игры, я имею в виду различные меню и окна типа «Credits» и «Level completed!». Я расскажу, как я оптимизировал свою работу.

Читать дальше →
  • +3

Пишем код в IntelliJ IDEA


Три недели назад открыл для себя эту замечательную иде «IntelliJ IDEA».
Даже странно, что здесь нет постов об этой штуке.

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

  • Хитрая подсветка кода. Лучшая, что вообще видел (в сравнении с fd, fb/eclipse, visual studio, mono).
  • Все нужные быстрые клавиши, которыми и раньше радовал fd. И даже больше, удобнее.
  • Find All Reference на название класса работает (это актуально для fd'шников)
  • При переименовании класса/ перетаскивания из пакета в другой пакет — все import'ы исправятся(это актуально для fd'шников)

Тонны мелких приятностей… диаграммы, интеграция к репозиториям, трекерам и тд и тп…

Читать дальше →

Создание простой игры для Android на AIR. Часть вторая

1
Часть первая

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

Вибрация.


Сделаем так, чтобы при попадании красного айтема на платформу срабатывала короткая вибрация. Но вот проблема — у AIR нет доступа к API вибрации. На помощь приходит замечательная вещь под названием Native Extension. Native Extension — это средство для взаимодействия ActionScript 3 кода с собственным кодом разработки для платформы, на которой запускается приложение. Для Android — это Java. На этом языке разрабатываются нативные приложения для андроида. Каждое расширение(extension) состоит из двух частей — собственного кода платформы и AS3 кода. Всё это упаковывается в файл с расширением ane, который подключается к проекту. Также расширение имеет идентификатор, который нужно прописать в application.xml. Таким образом Native Extension позволяет получить доступ к API операционной системы через ActionScript 3. Выходит, что нам нужно написать расширение на Java и AS3 код. В случае с вибрацией этого делать не придётся, так как добрые разработчики из Adobe уже написали это расширение. Надо только им воспользоваться.

Читать дальше →

Создание простой игры для Android на AIR. Часть первая

Вместо вступления.


Приветствую всех.
Этот урок был написан в марте 2012. Сейчас я решил опубликовать его на данном ресурсе. Код решил не менять, прошу сильно к нему не придираться(сам бы придрался). Немного доработан сам текст урока и комментарии в коде. Цель урока — не научить делать игры, что в рамках одного урока само по себе невозможно, а продемонстрировать основы работы с мобильным AIR. Почему именно Android, а не ios? Потому что на момент написания урока под рукой был только он. Под ios всё делается практически так же, но есть некоторые отличия, о которых написано в конце второй части урока.
Буду рад любым комментариям, замечаниям, указанием на ошибки.

Немного теории.


Adobe AIR позволяет создавать на ActionScript 3 и MXML для iOS и Android приложения, которые для пользователя ничем не будут отличать от нативных. Их, как и любые нативные приложения, можно распространять через фирменные магазины приложений Apple AppStore и Google Play Store (бывший Android Market). С версии AIR 3.2 появилась поддержка Stage3D. Для работы AIR приложения на Android нужно установить на устройство AIR Runtime, или же при компиляции в captive-runtime среда выполнения вшивается в apk. При этом установка AIR Runtime на девайс не требуется.

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

Читать дальше →

Пишем приложение AIR под iOS: работаем с касаниями и акселерометром.

flash ios adobe airВ этом несложном уроке я покажу работу flash.ui.Multitouch и flash.sensors.Accelerometer на примере тестового приложения Air для iOS.
 

Читать дальше →

Релиз: Изометрический редактор карт 1.0.0

1

Здравствуйте! В ходе работы над игрой написал средней сложности редактор карт, на основе движка as3isolib. Изометрический редактор хоть и не идеальный, но вполне работоспособный.

Загрузить последний стабильный билд и исходники вы можете по ссылке:
mapeditor.zip

Также еще один хелпер для настройки смещения тайла, совсем простой, но иногда без него просто никак:
TILE_OFFSET.zip
Читать дальше →

Первая игра. 2 года от идеи до релиза


Всем привет! В свой первый пост я хочу рассказать о разработке моей пока что единственной законченной игры Acorn Story, а также о некоторых трудностях, с которыми пришлось столкнуться.
Читать дальше →

Перевод статьи Emanuele Feronato "Симуляция радиальной гравитации..."


Что-то давно в блогах не было статей в которых бы описывалась реализация чего-нибудь интересного связанного с физикой. Поэтому я решил добавить сюда свой перевод статьи Emanuele Feronato Simulate radial gravity (also known as “planet gravity”) with Box2D as seen on Angry Birds Space
Читать дальше →
  • +14

Удобная вставка текста в текстовые поля кнопки

Это первый пост, потому хочется начать с чего-нибудь простого. Расскажу о функции, которая сильно упрощает мне жизнь при создании GUI.

Лирическое вступление

Для формирования сложного GUI (например игрового) я почти всегда использую следующий способ: GUI формируется в fla файле (каждое окно — отдельный класс), всем кнопкам, текстовым полям и тп прописываются instance name, а затем окно или несколько экспортируется в swc, которые подключаются к проекту (например FlashDevelop), пишутся классы наследованные от классов втянутых из swc в которых я уже вношу текст на кнопки, привязываю обработчики событий, и вообще из шаблона делаю собственно GUI. Делая так я имею возможность импортировать макеты окон прямо из PSD файлов и быстро подключать их к проекту. Уверен что этот прием известен большинству flash-разработчиков, потому продолжим (если есть необходимость в статье об этом — скажите).

Первая проблема

В процессе написания класса окна унаследованного от класса из swc часто возникает необходимость просто и быстро вписать текст в текстовое поле, являющее дочерним объектом не для самого окна, а например обернутое в один или несколько MovieClip-ов. Обычно такая ситуация решается одним из трех способов:
Читать дальше →

Endless War 5 - итоги


Всем привет!

Некоторое время назад опубликовал свою Endless War 5 (Kongregate, Newgrounds, сайт спонсора) и в очередной раз убедился, что не понимаю как работает FGL и от чего там зависит цена. Но обо всём по порядку.
Читать дальше →