Разработка игр для Flash Lite 1.1

Необходимые ресурсы:
Flash MX Professional 2004
Macromedia Flash Lite 1.1 CDK
Пример приложения: fl_game _exercise.zip (ZIP, 1 MB)

Прежде чем открывать Flash, вы должны определить для себя типы игр, которые работают на мобильных платформах. В сети наиболее популярные и эффектные Flash игры в основной своей массе просты, но вызывают привычку, благодоря силе Flash :) которая оличается отличной поддержкой векторной графики и короткими сроками разработки, используя гибкость ActionScript. Эти факторы также справедливы для Flash Lite, поэтому простые игры будут для вас отличным стартом в этой новой среде разработки.

Следующее важное понятие на этом этапе — это определить для какого делефона будет разрабатыватся приложение. Это очень важный момент, который будет сильно влиять на всю стратегию разработки, поскольку различные телефоны имеют соответственно разные разрешения экрана. В добавок ко всему модели имеют различные методы управления и ввода (навигация). Наример Nokia Series 60 имеет 5-и позиционный джойстик, в то время как Sony Erricson P900 сенсорный экран. Ваша игра будет работать на обоих моделях? Станете ли вы разрабатывать разные версии для различных телефонов или у вас будет одна кросплатворменная для всех устройств?

Еще один жизненно важный момент в разработке игр на Flash Lite это мощность процессора на данном устройстве. Вся ваша тяжкая работа может превратиться в ничто, если результатом станет медленная, дерганая, бесполезная игрушка. Этот фактор изменяется в зависимости от модели, конечно же, но как же быть? Хорошая новость в том, что Macromedia предлагает набор тестировых аппликаций, как часть Flash Lite 1.1 для разработки контента (CDK), который включает в себя очень полезный процессорный спидометр (Examples > FPS > Speedometer). Если вы будете пользоватся им на начальном этапе разработки, то сможете избежать неприятностей и разочарований в дельнейшем.

Если говорить кратко, то планирование и тестирование тут — ключ к успеху.

С этими словами в голове давайте посмотрим как использовать новые возможности, предлагаемые программой Flash Lite 1.1 для разработки игр на телефоны. В этом уроке будет использоватся Nokia Series 60 как целевое устройство. Мы посмотрим как конвертировать игру разработанную для web на телефон.

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

В папке fl_game_exercise folder, найдите папку start и откройте файл presiDance_start.fla. Это простая игрушка танцующего персонажа, рекламирующая американскую политику. В следующих разделах я расскажу, как сделать необходимые изменения, шаг за шагом.

Проверка размера сцены

Мы хотим взять игрушку PresiDance и поместить ее на Nokia Series 60 — следовательно наш первый шаг убедится в том что мы имеем корректный размер сцены. Полноэкранный режим на Nokia Series 60 — 176×208. Для простоты я уже адаптировал файл presiDance_start.fla под это разрешение. Также имейте ввиду что Flash имеет стандартный набор шаблонов когда вы создаете новый документ.

С возвращением tellTarget! Освежающие курсы по скриптованию на Flash 4

Как и для любого Flash приложения, ActionScript является важной деталью, позволяющей сделать вашу игру интерактивной. Если вы читали Flash Lite 1.1 CDK вы знаете, что для разработки понадобятся комманды Flash 4 ActionScript (но есть исключения, как вы увидите позже).

Вот несколько ключевых моментов, где используется синтаксис Flash 4 ActionScript:

*Slash синтаксис: Со времен версии Flash 5, мы могли использовать дот-синтаксис (bla.bla_mc) когда определяли путь к символу или переменной. До этого использовался слэшевый синтаксис, который и будет необходим для Flash Lite. Например, когда определяется путь с помощью дот синтаксиса вы пишете:

_root.parentClip.childClip

В то же время используя слэш синтаксис это будет выглядеть так:

/parentClip/childClip
*tellTarget: Вы должны использовать комманду tellTarget для управления movieClip-ами. Например, в дот синтаксисе вы говорите чтобы myMovieClip остановился на фрейме myFrame написав это:

myMovieClip.gotoAndStop("myFrame")

используя комманду tellTarget это выглядит так:

tellTarget("myMovieClip"){ gotoAndStop("myFrame"); }
*Путь к переменным: Способ определения пути к переменным также изменен на слэшевый синтаксис. В дот синтаксисе вы могли использовать это:

_root.myMovieClip.myVariable = myValue

В слэш синтаксисе это выражение записывается:

/myMovieClip:myVariable = myValue

Если вы взгляните на presiDance_start.fla, то увидите, что файл уже готов к публикации как файл Flash 4. Существует также набор комманд доступных для Flash 4 но не поддерживаемых Flash Lite1 1.1 для для данного устройства. Например комманды startDrag, stopDrag не будут поддерживатся. Остольные выражения для кнопок объединены в новую группу комманд и дают разработчикам хороший контроль над телефоном.

*Введение в новую комманду FSCommand2

Комманда FSCommand2 позволяет вам контролировать ваше приложение на устройстве. Пример иллюстрирует как можно использовать FSCommand2 в нашей игре. Вы можете можете определить много функций на первом кадре, т.к они будут применятся глобально, как только игра откроется. Для начала проверьте, грузится ли приложение в режим full-screen на целевом устройстве. Чтобы седать это используйте комманду FullScreen:

1. В файле presiDance_start.fla, выберите Frame 1 на панели Action. Откройте окно ActionScript и введите следующее:

FSCommand2("FullScreen", true);
2. Проверьте, что качество отображения графики ускановлено на максимум коммандой:

FSCommand2("SetQuality", "high");

Комманды FullScreen and SetQuality могут работать и на Flash приложениях, но следующии будут специфические.

У большинства телефонов существуют «не числовые» клавиши, предназначенные для открытия меню, выхода из аппликации. На Nokia Series 60 вы можете увидеть эти клавиши на следующей картинке. имеет смысл использовать их для управления игрой. В этом случае можно использовать комманду Выход
3. Выберите Frame 6 (метка «choose») на панели Actions. Откройте окно ActionScript введите следующую комманду:

FSCommand2("SetSoftKeys", "left", "right");

Мы поместили эту комманду на Frame 2, т.к это позволяет нам ипользовать предустановленные функции Flash Player для этих клавиш на сплэшевом экране игры. Это включит комманды Сохранить и Без звука, поэтому важно дать пользователю получить к ним доступ. Комманда SetSoftKeys говорит устройству, что бы будете определять функции для левой и правой дополнительных клавиш.
4. Установим комманду для клавиши выход которая находится на сцене. Выберите Frame 6 на слое дополнительных клавиш. Щелкните на кнопке Выход (Exit) в нижнем правом углу сцены. Откройте окно ActionScript для этой кнопки и наберите следующую комманду:

on (keyPress""){ FSCommand2("Quit"); }

Note: Если вы публикуете для Flash Lite 1.1, комманды PageUp и PageDown keyPress commands соответствуют левой и правой дополнительной клавише, соответственно.

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

Векторная Графика vs Bitmap

Когда разрабатываются игры для web, очень просто настроить нагрузку на процессор, учитывая, что большинство пользователей имеет достаточно мощьные компьютеры для работы с Flash. С мобильными устройствами вы должны учитывать то, что мобильный процессор намного медленне чем процессор ПК.

Одна из проблем заключается в том, что Flash игры имеют большое количество векторной графики что не очень приемлимо для платформы Flash Lite. Это может показаться странным, т.к векторная графика является мощю Flah игр, но векторные бэкграунды или бэкграундная анимация может запросто уменьшить производительность анимации вцелом.

Note: Тестирование непосредственно на телефоне является главной задачей на этом этапе, т.к проблемы с производительностью могут не отображатся, когда вы тестируете SWF на компьютере.

Простое решение импортировать бэкграунд в Macromedia Fireworks и экспортировать его как bitmap. Эти картинки могут быть вставлены в Flash вместо векторов.

Для удобства я уже импортировал bitmap версии бэкграундов в библиотеку. Они находятся в папке Bitmaps.

Теперь возьмите эти картинки из библиотеки и замените ими вектора:

1. В библиотеке откройте папку Graphics. Наведите на g_bg_splash щелкните два раза. Удалите весь контент, он векторный.
2. Откройте папку Bitmaps и перетащите splashscreen.png на слой bg. Установите координаты x = 0, y = 0.
3. Повторяйте шаги 1 и 2 для фона игры. Т.к фон анимированный вам нужно заменять его в нескольких местах. В папке Movie Clips найдите mc_bg_stage. Войдите в него. Выберите Frame 1 слой bg. Удалите все с этого слоя. Теперь в библиотеке откройте папку Bitmap и перетяните background.png на слой bg. Установите координаты x = 0, y = 0.
4. ВыберитеFrame 6 слоя bg и удалите контент на этом кадре. Перетяните background_2.png из папки Bitmaps на сцену. С фоновой растровой графикой персонаж будет двигаться намного быстрее.

шспользование звуков

Звук — важная часть в игре, но опять же тут существует несколько спецефических различий. В web вы можете использовать различтые звуковые форматы, например WAV или MP3. На мобильных устройствах вы должны использовать другие форматы.

Для чистого звука и малого размера файла, звук в формате MIDI — лутшее решение. Замените mp3 на MIDI звуки, что используются в игре.

Публикация фильма

После того, как вы сделали все изменение с Flash игрой, чтобы заставить ее работать на Flash Lite 1.1, вы должны сделать publish movie. Для этого нужно просто выбрать Flash Lite 1.1 плейер в настройках публикации. Теперь остается только запустить игру на вашем телефоне.

Добавить комментарий