обо всем по-немногу...
Starling. Particles. StarMaker...
Доброго времени суток, уважаемые разработчики.
Сразу хочу сказать, что статья – просто очередная статься про Starling, полезность или бесполезность которой я не могу оценить. Так уж вышло, что я недавно начал знакомство с этим фреймворком и мне показалось, что некоторые моменты не достаточно хорошо освещены разработчиками. Ну, что-то в этом духе. Речь идет о системе частиц как часть Фреймворка. О ней и о том, что в процессе получилось речь и пойдет.
Для начала: что есть такое Starling и как его использовать.
Цитата из перевода описания:
«Starling это фреймворк написанный на ActionScript 3, для работы с двухмерной графикой с использованием API Stage3D (это API доступно в средах Flash Player 11 и Adobe AIR 3). Starling в основном разработан для использования при разработке игр, но может быть использован и во многих других случаях. Starling делает возможным написание приложений, ускоренных GPU, без непосредственного взаимодействия разработчика с API Stage3D.»
Полный текст перевода можно почитать тут: http://coolisee.blogspot.ru/2011/12/starling.html
Оргигинальный текст лежит тут: http://www.bytearray.org/wp-content/...ing-latest.zip
Собственно, ссылка на оригинал есть и в переводе.
Небольшая зарисовка про Starling: http://www.adobe.com/devnet/flashpla..._Starling.html
Ну и, конечно, хелп на сайте разработчиков: http://gamua.com/starling/help/
Что нам потребуется, чтобы вся эта красотень у нас работала?
Flash Player: http://www.adobe.com/support/flashpl...oads.html#fp11
Flex SDK: http://sourceforge.net/adobe/flexsdk/wiki/Downloads/
Собственно сам Starling: http://gamua.com/starling/download/
Ну и, конечно, такая-то матерь )
Все качаем . Все ставим. Смотрим и видим, что классов-то для работы с частицами в «базовой комплектации» и нет. Если внимательно прочитали перевод или оригинальный текст по первой ссылке, то видели, что в разделе «Частицы» приведена ссылка, где можно взять дополнение к Фреймворку для работы с частицами. На всякий случай продублирую сюда: https://github.com/PrimaryFeather/St...article-System
Кстати. Или что-то у них там или что-то у меня, в итоге, но скачав все оказалось, что в основном пакете и пакете дополнения шли одинаковые классы, но в разных package. Пришлось немного поколдовать, чтоб все это сдружилось )
Это был первый упомянутый мной вначале момент, который мне не совсем понятен. Почему бы сразу все дополнения с основным пакетом не собрать в кучку?
Так же в том же разделе той же статьи идет речь о визуальном редакторе частиц, который позволяет создавать и редактировать эмиттеры и сохранять их в обычный текстовый файлик настроек, который они обозвали *.PEX (Particle Emitter).
Пример:
Код:
<particleEmitterConfig> <texture name="def.png"/> <sourcePosition x="170.00" y="256.00"/> <sourcePositionVariance x="60.00" y="0.00"/> <speed value="138.16"/> <speedVariance value="0.00"/> <particleLifeSpan value="0.7000"/> <particleLifespanVariance value="0.0000"/> <angle value="224.38"/> <angleVariance value="360.00"/> <gravity x="0.00" y="-1400.00"/> <radialAcceleration value="0.00"/> <tangentialAcceleration value="0.00"/> <radialAccelVariance value="0.00"/> <tangentialAccelVariance value="0.00"/> <startColor red="0.15" green="0.06" blue="1.00" alpha="1.00"/> <startColorVariance red="0.00" green="0.00" blue="0.00" alpha="0.00"/> <finishColor red="0.00" green="0.14" blue="0.23" alpha="0.00"/> <finishColorVariance red="0.00" green="0.00" blue="0.00" alpha="0.00"/> <maxParticles value="300"/> <startParticleSize value="43.79"/> <startParticleSizeVariance value="0.00"/> <finishParticleSize value="138.11"/> <FinishParticleSizeVariance value="0.00"/> <duration value="-1.00"/> <emitterType value="0"/> <maxRadius value="100.00"/> <maxRadiusVariance value="0.00"/> <minRadius value="0.00"/> <rotatePerSecond value="0.00"/> <rotatePerSecondVariance value="0.00"/> <blendFuncSource value="770"/> <blendFuncDestination value="772"/> <rotationStart value="0.00"/> <rotationStartVariance value="0.00"/> <rotationEnd value="0.00"/> <rotationEndVariance value="0.00"/> </particleEmitterConfig
Как именно этим всем пользоваться?
Как создать Starling экземпляр и запустить его я в этой статье описывать не буду. Впрочем я не буду сильно углубляться и в создание экземпляров систем частиц. Кратенько:
Что есть что объяснять не буду. На мой взгляд все достаточно очевидно. Скажу лишь, что размер текстурки ограничен 2048х2048.
В общем-то, если сильно захотеть, то можно написать любую свою систему партиклов, но мы пока разберем эту.
Теперь вернемся к ParticleDesigner. Визуальному редактору который я упоминал выше. Находится он тут:
http://www.71squared.com/particledesigner
И видим еще одну несправедливость – от под МАК. И я решил убрать эту несправедливость – написать кросплатформенный редактор на AIR сохранив существующую систему хранения данных . Возможно, что кто-нибудь из тех людей кто создавал все, что я описывал выше когда-нибудь дадут мне по лицу за это деяние. Поживем-увидим )
Собственно, написание оного приложения много времени не заняло. Дня 4.
Заодно выражаю благодарность нашему Тигре как счастливому обладателю мака да и просто отличному парню, который согласился оказать консультационную помощь по приложению донору. Побыть шпиёном, попросту говоря)
Редактор можно забрать
REM: файлы слишком большие. забираем тут:
http://cleptoman.ru/starmaker/StarMaker.air
http://cleptoman.ru/starmaker/StarMakerSetup.exe
air поменьше, но требует наличие эйр рантайма (не думаю, что это проблема)
exe побольше, но эйр рантайм уже внутри дистрибутива
Немного расскажу что там есть и чего там нет.
Панель настроек самого эмиттера нагло слизана 1 в 1.
По импорту/экспорту:
Можем открывать как PEX файлики и сохранять их. Так же с сделал свой формат хранения PEX файла вместе с текстурой для него. По сути это сжатый AMF бинарник, который содержит сам PEX, текстуру виде байтов BitmapData полученной из getPixels и квадрат (bounds) этой битмапы. Чтобы читать/писать этот формат я написал пару классов, которые можете забрать во вложениях. Он имеет расширение STMF (мне показалось, что хранить 2 отдельных файла менее удобно чем один в котором все что нужно уже есть).
STMF является ассоциированным типом файлов для этого приложения. По этому можно смело дабл кликать по любому из них и работать. Так же поддерживается DRAGnDROP из системы. Оно работает и таскать можно PEX/STMF и файлы текстур PNG/GIF/JPG. Но еще надо будет потестить. Если вдруг что найдете – пишите.
Теперь чего нет – нет пока рандомизатора эмиттера, который есть в оригинальном приложении, но он появится.
Как пользовать STMF в контексте системы PDParticleSystem:
Все очень просто
[Embed(source="../../../../assets/drugs.stmf", mimeType="application/octet-stream")] private var smFileClass:Class; … var file:ParticleConfigFile = STMFileEncoder.decode(new smFileClass()); var rect:PixelsBounds = file.pixelsRect; var source:BitmapData= new BitmapData(rect.width, rect.height, true, 0); source.setPixels(new Rectangle(0, 0, rect.width, rect.height), file.textureBytes); new PDParticleSystem(XML( file.configPEXBytes), Texture.fromBitmapData(source));
p.s. Добавил примерчик с партиклами
p.p.s Добавлю ссылку на сорсы програмулины. ковыряйте кому интересно ) https://bitbucket.org/cleptoman/starmaker
Всего комментариев 25
Комментарии
05.12.2012 22:57 | |
2 - тут проблема..рисовал сам, будучи ниразу не дизайнером)..если б нашелся человек )
|
05.12.2012 23:28 | |
Это офигенно!
Полезный инструмент, громадная работа во благо общества, спасибо. |
06.12.2012 00:13 | |
06.12.2012 01:01 | |
ага..в принципе это тоже самое и работает с теми же полями )
|
06.12.2012 13:27 | |
Есть и online редактор.
|
06.12.2012 13:40 | |
оффтоп:
у них там бага с GUI, проявляется если, например, тыкнуть в EditBackground несколько раз. |
06.12.2012 14:41 | |
да, Леш, спасибо..видел уже)..я как обычно сбаянил)
п.с. только чего там так разблюрено-то все? |
06.12.2012 17:28 | |
Цитата:
Кстати. Или что-то у них там или что-то у меня, в итоге, но скачав все оказалось, что в основном пакете и пакете дополнения шли одинаковые классы, но в разных package. Пришлось немного поколдовать, чтоб все это сдружилось
За редактор спасибо. Вещь хорошая. cleptoman, Смущает, что панель настроек закрывает почти весь экран. Наверное стоит её вынести в отдельную панель или даже в отдельное окно. Посмотрите, как сделан онлайн редактор |
|
Обновил(-а) illuzor 06.12.2012 в 19:09
|
06.12.2012 17:40 | |
Цитата:
п.с. только чего там так разблюрено-то все?
|
07.12.2012 00:28 | |
отлично. а на гитхаб или битбакет не хочешь код редактора кинуть?
|
07.12.2012 03:01 | |
Цитата:
Частица такая.
|
07.12.2012 11:22 | |
Цитата:
есть баг - при клике на контрол выбора цвета вся панель настроек закрывается
|
07.12.2012 13:11 | |
добавил ссыль на сорсы, если кому интересно и охота ковырять кучу непонятно как написаного кода )
|
07.12.2012 19:13 | |
Цитата:
добавил ссыль на сорсы
Не хватает редактору только своей страницы с описанием. |
10.12.2012 13:42 | |
Спасибо, очень полезно.
|
10.12.2012 19:25 | |
Цитата:
добавил ссыль на сорсы
|
10.09.2013 15:23 | |
Вот бы еще конвертер с кокосовского формата партиклов (.plist) в .pex дописать
|
10.09.2013 18:32 | |
cleptoman я не могу не сказать человеку сделавшее такое спасибо - Спасибо! И у меня к Вам вопрос, у Вас в планах нет сделать тоже самое с плагином для сс ? http://desuade.com/partigen
|
29.04.2015 10:28 | |
привет. ссылки битые...хочу посмотеть
|
03.05.2015 20:29 | |
Эбаут: http://wiki.starling-framework.org/e...particlesystem
Попробовать онлайн: http://onebyonedesign.com/flash/particleeditor/ |
11.05.2015 21:23 | |
Не. Хотел его стэндалоне вариант посмотреть. в прочем уже не актуально
|
Последние записи от cleptoman
- Starling Builder. Дождались? (28.10.2015)
- Starling. Particles. StarMaker... (05.12.2012)
- FLVEncoder (02.08.2011)
- UnsecurityDisplayLoader - обертка для несекьюрной загрузки дисплей контента (12.02.2011)
- ASDoc Comment Injector (08.02.2011)