Редактор на основі flash ide компоненти

Редактор на основі flash ide компоненти

Давайте спробуємо створити компонент.
- Нам потрібно створити MovieClip
- У бібліотеці натискаємо правою кнопкою на нашу кліпу і тиснемо Component Definition

Редактор на основі flash ide компоненти

У списку Parameters додаємо потрібні нам параметри
Name - ім'я видиме в компоненті
Variable - змінна буде оголошена в класі TestComponent
Value - значення за замовчуванням
Type - тип, типів предостатньо щоб описати будь-які властивості.

Class - TestComponent.as клас в якому ми і реалізуємо роботу компонента.

Решта в даний момент нас не цікавить, залишаємо так як є. У бібліотеці іконка нашого кліпу змінилася, тепер це компонент.

Коли ми перетягнемо компонент на сцену то побачимо на панелі Properties таку картину

Ура тепер ми можемо редагувати ці властивості прямо на сцені! Але це ще не все, щоб ми могли з ним працювати програмно нам потрібно написати наш TestComponent.as, виглядати він буде так
Ось тепер ми зможемо налаштувати цей компонент в IDE і вважати дані при виконанні програми.
У підсумку нам потрібно написати парсер мувікліпа рівня як і згадуваної вище статті, але коли ми натикаємося на компонент ми отримуємо значно більше потрібної нам інформації ніж при роботі з простим мувікліп.

2) Фізичне тіло, список параметрів тут трохи цікавіше

Редактор на основі flash ide компоненти

Статична тіло / матеріал / тип об'єкту / початкові швидкості
Клас виглядає так

За кодом видно як використовувати і задавати списки. Один параметр не можна задати в компоненті це _shapeType - тип Шейп (прямокутник / коло / овал / трикутник / будь-яка форма), це зроблено для того що далі ми створюємо для кожного типу Шейп свій компонент і задаємо значення _shapeType явно. Для прикладу Коло:

Виглядають наші фізичні компоненти на сцені пріерно так, і кожен має перерахованими властивостями

Редактор на основі flash ide компоненти

Будується ігровий об'єкт так - створюємо обєкт в котори додаємо і графіку і фізику, при парсенге фізичний компонент видаляється після обробки даних.

За таким принципом дуже просто зробити набір об'єктів (у нас тут набір дерева / каменю / льоду)
Редактор на основі flash ide компоненти

Тикаємо їх на сцену так як нам потрібно, обертаємо, Скейл. Тепер написавши парсер (Не вдаємося в подробиці) можна створювати рівні. Виходить як то ось так:

Трошки зміню наданий код.

Ось напевно як то так. В даному прикладі опис компонента є і у самого ресурсу (об'єкт який лежить на рівні і чекає парсинга), і у дітей ресурсу. Наприклад DynamicBody це комбінація одного анімованого спрайту і багатьох Шейп всередині нього. Наприклад там може бути кілька Шейп для імітації фізики і один сенсор для прорахунку влучень куль. Шейп і спрайт ми витягуємо за типом (теж властивість компонента, але в бібліотеці це рядок, а тут беремо константу по рядку). А взагалі все залежить від архітектури проекту.

Дякуємо! Щас буду поколупати.

100% потрібна штука) +1

відмінний пост! Дякуємо. не знав про цю штуку з компонентами. дуже зручно. )

Завжди юзал компоненти флеша, але як вони створюються руки не доходили. А все виявляється просто, спасибі!

А чому в наведеному прикладі для трикутника фізична компонента зображена як хексагон? А в ролику вона як трикутник діє.

Хексагон в даному випадку - довільна фігура задана набором точок за годинниковою стрілкою. Трикутник задано 3-червоними крапками.
Можна вираховувати точки для трикутника з ширини і висоти, там у нас так само є такі.

Хексагоном зручно створювати об'єкти типу

Хоча для маленьких проектів це не потрібно. А великі невигідні. Чому не вигідні?

не окупаються. ринок не той. потрібно намагатися укладатися в 1-3 місяці. але нічого не заважає потихеньку апдейт власний енджін використовуючи його в усіх проектах.

Я саме про універсальний говорив.

Можна в персональних блогах

Хлопців, хто небудь стикався з такою проблемою: задаю значення змінної типу Nubmer через IDE і компоненти, виходить така штука, що в IDE ставлю допустимо 0.1, в а коді виявляється, що значення збільшено в 100 разів, т-е замість 0.1 вже 10, відповідно число менше 1 виставити не можна тому що IDE дозволяє виставляти числа тільки до сотих. Що робити?

Що робити? Купити ліцензійну IDE;)
Або поміняти в ОС роздільник за замовчуванням на точку.

Зіткнувся з такою проблемою:
Кидаю на сцену компонент -> компілює -> код не бачить параметри компонента ((level.getChildAt (i) as Sprite) .myVariableName = undefined).
Кидаю на сцену компонент -> міняю будь-який з моїх параметрів -> компілює -> компонент обробляється нормально, всі параметри визначені.

Нарешті зібрався розібратися в цьому. Спасибі величезне за статтю!

Пара уточнень, якщо хто друг зіткнеться з такими ж проблемами, як у мене - клас TestComponent треба зробити спадкоємною від MovieClip.

У Component Definition параметри можна врчную не додавати. Якщо буде готовий спочатку ас файл, то після прописування в після Class нашого файлу і натиснення ОК, Inspectable параметри підхопили самі (це можна перевірити, зайшовши в Component Definition вдруге).

Не забудьте і у властивостях Linkage вашого компонента поставити такий же клас TestComponent.

Парсинг проводите за подією FRAME_CONSTRUCTED

112 Новомосковсктелей
126 топіків

Дуже сумно все це

ui і з фоном в результаті треба щось зробити. Я розумію тут стиль такий можливо, але ... з інтересом.

Запустив. 50 мб завантаження на старті - все таки перебір для таких ігор. Як і відсутність.

Тобто, зовсім чесні нові ігри? А яким чином ранжируется по місцях, не в курсі, випадком?

злякався дуже сильної конкуренції)

О, ось це чудова новина, ввечері перевірю як працює.

Вартість продакшена (як в грошах, так і в людино-годинах) цілком собі можна вважати.

Кому-небудь ще вдалося перемогти зв'язку AIR + Mac + Steam? Після обробки файлу гри стімовскім.

Не бачу великих змін для адекватних розробників

Вітання! Для того ми тут і зібралися, в тому числі розповідати про граблі :)

Дякую що звернули увагу. Поправив.

Успіхів! Теж робимо гру на air :)

Адоб точно не напише, що не написали вінфон і ще купу всього. Та й Шумву з компанією.

Ой спасибище! Якщо хоч одній людині сайт став у нагоді, значить я не дарма витрачав на нього час!

А коли вони його закривають? Історія прекрасна! Плюсанул, удачі!