Flash игра - Don’t Look Back

08.04.2009, автор: Stormit, рубрики: Flash игры

Отличная игрушка попалась на днях на глаза, называется: Don’t Look Back.

Почему игра так называется, становится понятно когда проходишь большую её часть. Для меня этот момент был самым неожиданным и приятным в игре. В конце игры снова неожиданность… В общем, игра с идеей, которая в середине немного меняет суть игры.
Don’t Look Back Flash Game
Советую потратить часик свободного времени и пройти игру до конца.

19 Хитрых

Альтернатива “Cache as bitmap” - разгружаем процессор

27.03.2009, автор: Stormit, рубрики: ActionScript

Наверное многие знают и умело используют такую замечательную возможность во флеше как “Cache as bitmap“. При этом, с клипа делается виртуальный снимок в виде картинки и вектор не пересчитывается для отрисовки каждый кадр. Можно рисовать графику в векторе прямо во флеше, потом в панели свойств включить кэширование и на выходе плеер получает растровую картинку. Очень удобно, можно быстро вносить изменения и сразу любоваться результатом минуя фазу экспорта/импорта в PNG. Плюс ко всему - экономия траффика.

Звучит приятно и обычно всё хорошо работает, но я столкнулся с тем, что с клипами больших размеров, тормоза частично остаются. В одной платформенной игре у меня был фон 1200х1200, который лежал на заднем плане и должен был просто смещаться, пока персонаж бегает по уровню. Так вот, анимация происходила с небольшими рывками. Такое впечатление, что флэш время от времени пересчитывает данные и делает “обновлённый” снимок с клипа. Так или иначе, но факт имел место и такие тормоза были. Это решалось заменой векторного фона растровым (PNG), но такая флешка весила очень много.

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

На примере ниже можно увидеть как это работает. Большое количество градиентов и  объектов нас больше не пугают, потому что пикселы отрисовать в разы быстрее чем рассчитать вектор по точкам. Так будет видеть flashPlayer наш клип:

Читать полностью »

35 Хитрых

Crimsonland 3: Выживание на практике

19.03.2009, автор: Stormit, рубрики: ActionScript, Flash игры, Игровые баннеры

Мне уже порядком поднадоела эта тема, но люди просят рассказать каким образом создаются монстры, летят пули и как определяется попадание. Надеюсь это многим поможет, тем более что поняв эти простые истины, можно создать много разных flash игр.

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

Итак, из предыдущих постов у нас есть главный герой, готовый ринуться на толпы врагов. Я заменил базуку на пулемёт и немного повысил его манёвренность (скорость ходьбы и поворота). Слайд 1.

Подробно о том, как теперь устроен клип body клипа hero показано на слайте 2. При щелчке мышью, начинает проигрываться анимация стрельбы и во втором кадре вызывается функция placeBullet(), которая добавляет пулю на сцену. Это единственное место в этом примере, где вызов функции идёт из клипа, а не с главной линейки. Обратите внимание, что появился вспомогательный клип dot - он нужен чтобы пересчитать по нему правильные координаты пули в момент вылета из ствола. Это идеальный способ, когда дуло не находится точно на осях X и Y. Внутри всех вспомогательных клипов я пишу _visible = false. Так они не заметны для глаза, но доступны для кода.

Дальше создаём клип для противника с именем spider и прочую атрибутику: пулю (bullet) и спецэффект для поражения (boom). Клип spider состоит из 2-х кадров (состояний). В первом клип с анимацией ходьбы (здесь же и клип hit, который нужен для проверки попадания), а во втором - клип а анимацией погибания (когда анимация доигрывается, в последнем кадре вызывается _parent.removeMovieClip() которая удаляет противника (в данном случае _parent - это клип spider). Клип пули bullet - просто рисунок снаряда (при _rotation = 0 смотрит вправо). Клип boom - имитация кровавого всплеска. Все эти клипы присутствуют на линейке, но лежат далеко за пределами сцены чтобы случайно не попали в кадр (или выполнить для них _visible = false). Потом с каждого будет создаваться дубликат и использоваться по необходимости.
Создаём прямоугольный клип ground который площадью должен покрыть всю сцену. Противники будут появляться, учитывая его границы, а пули будут удаляться (в смысле delete), когда вылетят за его пределы. Слайд 3.
Читать полностью »

58 Хитрых

Воспоминания о Crimsonland 2: наведение на цель

27.02.2009, автор: Stormit, рубрики: ActionScript, Flash игры, Игровые баннеры

Это небольшое дополнение к предыдущему посту, которое может сделать флеш-игру ещё интересней.

Очень часто разработчики, когда им нужно навести дуло на цель или направить монстра на жертву, делают это мгновенно. То есть, объект шёл в одну сторону, и тут бац.. идёт уже в другую. Это подходит для многих случаев и повышает контроль над ситуацией, мотивируя игрока проявить свои возможности, но иногда (а может и часто :)) нужно сделать чтобы дуло пушки или персонаж наводились на цель плавно.

Читать полностью »

25 Хитрых

Делаем во флэше движение персонажа как в Crimsonland

12.02.2009, автор: Stormit, рубрики: ActionScript, Flash игры, Игровые баннеры

Думаю, что многих в своё время зацепила игра Crimsonland. Лично мне нравится как там реализовано управление главным героем. При нажатии клавиши “Вверх” персонаж смещается не строго вверх, а туда, куда смотрит. Кнопки “Вправо” и “Влево” только поворачивают героя и меняют направление движения.

Такое движение сделать во флеше очень просто, достаточно знать формулы синуса и косинуса. Этим мы и займёмся. Читать полностью »

101 Хитрых

С Новым годом!

31.12.2008, автор: Stormit, рубрики: Новости

Всех поздравляю с праздником!

Желаю, чтобы Новый 2009 год стал для каждого интересным и неожиданным!
Желаю вам избавиться от своих врагов и завести хороших друзей!
Желаю получить хорошие подарки и весёлое настроение!
Желаю вам достаточно сил, чтобы реализовать свои идеи!
Желаю вам не заиметь рога и не отбросить копыта!

Желаю здоровья, радости, любви и счастья!

18 Хитрых

Флэш-игра “Вирусный кризис”.

26.12.2008, автор: Stormit, рубрики: Flash игры, Новости

Сделали новогоднюю флэш-игру для “Лаборатории Касперского”.
Последнее время, тема финансового кризиса не исчезает с первых страниц новостных изданий, поэтому название для игры выбрано актуальное - Вирусный кризис.

Флэш-игра “Вирусный кризис”

Игрушка не требует глубоких размышлений - это шутер. Зато вам понадобятся быстрая реакция и чувство юмора. Ваша задача - защитить сервер от стаи вирусов. В начале, у вас (якобы) слабая защита и возможности ограничены, но как только станет горячо, вам предложат установить более крутой антивирус, с которым вы получите ряд преимуществ: регулярные обновления и дополнительное оружие. Смысл игры - продержаться как можно дольше и набрать побольше очков.

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

Надеюсь игра вам понравится, мы старались сделать её весёлой.

37 Хитрых

Эффект сильного ветра в 2 кадра

07.11.2008, автор: Stormit, рубрики: Анимация

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

Этот способ лучше всего подходит для сильного ветра и он очень простой. Основная идея в том, что на быстрой скорости мы успеваем заметить только мелькание мимо нас неоднородных масс воздуха. Если отбросить всё лишнее и перенести это на флэшовый таймлайн, то получится мигающая анимация в два кадра - в одном есть что-то (облако, пыль…), во втором уже нет. У нас будет белый прямоугольник (якобы облака) растянутый на всю флэшку.

Таким же образом можно передавать и фоновую скорость, например, мелькание воздуха за иллюминаторами самолёта. Нужно ускорить персонажа? - Заставьте фон двигаться быстрее. Читать полностью »

25 Хитрых

Игровые баннеры тоже игры - презентация для FlashGamm в Киеве

29.10.2008, автор: Stormit, рубрики: Flash игры, Анимация, Игровые баннеры, Новости

Моя презентация на FlashGamm в Киеве.
Организаторы обещали выложить у себя на сайте видео, так что детально пересказывать нет смысла, остановлюсь на основных моментах:

Использование флэш-игр в рекламе

Основной смысл - как сделать из flash-игры рекламный продукт.

Читать полностью »

31 Хитрых

Впечатления от FlashGamm в Киеве

28.10.2008, автор: Stormit, рубрики: Новости

FlashGamm Киев 2008

Сначала хочу выразить благодарность организаторам - всё было очень круто. Гораздо серьёзнее, чем я рассчитывал. Валерия Маллаева и Александр Титов сделали всё, чтобы эта встреча состоялась, а посетители остались довольны. В каждом докладе я нашёл что-то полезное для себя, а некоторые слушал, не отрываясь. Были известные люди, на некоторых из них я сам учился, за это им тоже громкое благодарю.

Очень много было сказано о том, как зарабатывать на флэш-играх путём поиска спонсоров и с помощью рекламы. В зале, кстати, был представитель AddictingGames, которому можно было на месте показать/продать игру (что некоторые и сделали :)). Ada Chen из Mochimedia рассказала об особенностях их рекламных сетей. Нужно срочно учить английский.

Как всегда порадовала своими новыми возможностями Alternativa3D в лице Антона Волкова. Было выступление, посвящённое созданию именно flash-игр на базе их движка. Как я понял, для независимых разработчиков flash-игр (инди-разработчиков) Alternativa3D теперь бесплатна, а значит самое время пробовать её в играх.

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

Были также доклады на примере реальных проектов. Все презентации и отчёты (некоторые уже есть) можно найти на сайте FlashGamm.

Я выступал с докладом о том, как использовать флэш-игры в рекламных целях. Фактически о том, что я называю “игровые баннеры”. Рост на встрече предложил англоязычное название - “Casual Banners”. Как вам предложение?

Сейчас готовлю отчёт о своей презентации, как будет - сразу выложу.

40 Хитрых