Главная | Регистрация | Вход | RSSВоскресенье, 06.07.2025, 09:21

НеПотеряйка

Меню сайта
Наш опрос
Что для Вас "МОДЕРНИЗАЦИЯ ОБРАЗОВАНИЯ"?
Всего ответов: 210
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Дневник

Главная » 2013 » Апрель » 29 » Урок с ХабраХабр
Урок с ХабраХабр
16:17

Создание сцен для Flash игр с помощью StencylWorks

Если вкратце, то StencylWorks – это конструктор для создания Flash и iOS игр. Более подробное описание можно найти здесь.
Попробуем узнать, — действительно ли так быстро в нём можно создавать простые вещи, как это заявляют создатели платформы.
В этой статье мы попытаемся создать актера, сцену, применить к ним действия и тайлсеты.


Для создания игры в StencylWorks первое что необходимо, – это актёр (actor). В проектируемой игре все элементы, обладающие какими-либо действиями и поведением, являются актёрами.

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


Присвоим актёру имя и нажмем Create (Создать).



Вы увидите предупреждение о том, что созданный актёр не имеет анимации. По щелчку на это предупреждение заполним и этот пробел.



Присваиваем новой анимации имя, — например Walk left (Движение влево) и жмём на создание нового кадра (create a new frame).



Далее есть возможность импортировать анимацию кадр за кадром или загрузить изображение раскадровки и задать, сколько его строк и колонок нужно импортировать. Здесь же можно задать некоторые другие параметры,- например transparent color (так называемый "цвет прозрачности”).



Так как изображение раскадровки автоматически объединяется во фреймы, фактически мы сразу же получаем готовую анимацию движений влево-вправо, вверх и бега. В левой панели есть возможность предосмотра итоговой анимации, в главной панели анимация просматривается покадрово.


Путем повторения описанных выше действий, в игре создается новая анимация. Звездочкой (в панели слева) помечается анимация по-умолчанию, то есть та, которая применяется к актеру поначалу, как только он появляется в игре. Также анимация может состоять лишь из одного кадра.


Потратив сравнительно немного времени, мы получили анимированного персонажа. Пора задать для него управление. В нашем случае это делается путем присваивания имен используемым для этого клавишам. Теперь всё готово для создания тайлсета (tileset).


Тайлсет — это фон, порезанный на части, которые затем добавляются в игру.
Тайлсет создается не сложнее анимации, в данном случае используется компонент "Colorful Blocks” из раздела Media.


Актер и тайлсет – основные элементы любой сцены. А вот так она создается:


После создания сцены, перетаскиваем на неё наши тайлсеты и актеров.


И, наконец, требуется задать определенный набор поведений (behaviors), которые будут определять действия, например то, как актер движется.
Чтобы задать поведение, используется режим разработчика (design mode). Определим, как будет происходить движения актера вправо и влево.


Внизу на рисунке показан экран поведений (behavior screen), слева на нём – визуальное отображение кода, справа – набор элементов для создания различных комбинаций поведений актера.


Это конечная модель поведений нашего актера:


Давайте прокомментируем то, что мы сделали.
Блок always – тоже самое, что и Event.ENTER_FRAME листенер. Далее, если нажата стрелка "Вправо” то двигать нашего актера вправо с показом соответствующей анимации, остальные блоки визуального кода попробуйте расшифровать самостоятельно, думается, с этим особых проблем не будет.
Перевод визуального кода в листинг на ActionScript:
package scripts
{
 import flash.display.BlendMode;
 import flash.events.*;
 import flash.net.*;
 import flash.filters.*;
 
 import Box2DAS.Collision.*;
 import Box2DAS.Collision.Shapes.*;
 import Box2DAS.Common.*;
 import Box2DAS.Dynamics.*;
 import Box2DAS.Dynamics.Contacts.*;
 import Box2DAS.Dynamics.Joints.*;
 
 import stencyl.api.data.*;
 import stencyl.api.engine.*;
 import stencyl.api.engine.actor.*;
 import stencyl.api.engine.behavior.*;
 import stencyl.api.engine.bg.*;
 import stencyl.api.engine.font.*;
 import stencyl.api.engine.scene.*;
 import stencyl.api.engine.sound.*;
 import stencyl.api.engine.tile.*;
 import stencyl.api.engine.utils.*;
 
 import org.flixel.*;
 import mochi.as3.*;
 import flash.ui.Mouse;
 
 
 
 public dynamic class Design_13_13_Walkleftandright extends ActorScript
 { 
 override public function init():void
 {}
 override public function update():void
 {
 
 if (isKeyDown("right"))
 {
 actor.setXVelocity(7);
 actor.setAnimation("Walk right".toString());
 }
 
 else
 if (isKeyDown("left"))
 {
 actor.setXVelocity(-7);
 actor.setAnimation("Walk left".toString());
 }
 
 else
 {
 if (sameAs(actor.getXVelocity(), 7))
 {
 actor.setXVelocity(0);
 actor.setAnimation("Stand right".toString());
 }
 
 else
 if (sameAs(actor.getXVelocity(), -7))
 {
 actor.setXVelocity(0);
 actor.setAnimation("Stand left".toString());
 }
 }
 }
 override public function handleCollision(event:Collision):void
 {
 }
 override public function draw(g:Graphics, x:Number, y:Number):void
 {
 }
 
 public function Design_13_13_Walkleftandright(actor:Actor, scene:GameState)
 {
 super(actor, scene);
 nameMap["Actor"] = "actor";
 
 }
 
 override public function forwardMessage(msg:String):void
 {
 
 }
 }
}



Теперь применим описанное поведение к нашему актеру.


А что же насчет коллизий (столкновений, взаимодействий нашего актера с другими объектами сцены)? Всё это предусмотрено и изначально управляется настройками по-умолчанию.
А вот результат.

Текст подготовлен на основе вольного перевода статьи англоязычного блога итальянского разработчика игр.
Просмотров: 52404 | Добавил: i_elf | Рейтинг: 0.0/0 |
Всего комментариев: 201 2 »
20 ytaletbgxo  
0
prednisone and infection <a href=https://prednimed.com/>prednisone prescription</a> prednisone over the counter walgreens

prednisone aleve https://prednimed.com/ - over the counter prednisone for dogs

19 Emilielarm  
0
Пpиветǃ
Я привeтствую жeнщин, y кoтopых xвaтaeт мyжeствa насладитьcя любовью многиx жeнщин и выбрaть ту, котopая бyдет ee лучшим дpугoм вo вpемя yxaбистoй и сyмaсшедшей доpоги, называeмой жизнью.
Я хoтeла быть этим дрyгом, a не прocтo cтабильнoй, надeжной, скyчной дoмоxoзяйкой oбычнoй супружескoй пары.
Mне 26 лeт, Эмили, из Дaнии.
Mой профиль здecь: https://1pt.co/tinnz

18 WandaDon  
0
I toughened to active not far from the Jabalia and when hell fell from elysium I was luckier than the people who lived there.
My repute is سرحان‎., I am a displaced person and I am raising loot to help.
Elect if you can send a dollar saved to a Bitcoin purse, do so. I will check out to send funds representing humanitarian aid to the victims in the Gaza Strip.

Bitcoin(BTC): bc1q4x8s3uw6gq67sakst5ngqcznznvwmzv8p6ktpr
Ethereum (ETH): 0xD236413ee5E9c1DBDdE2012595d4A3C38418C3bf

If you can't send funds, choose don't delete this declaration or send it to SPAM. Please impudent it to those who can send at least 1 dollar.


كنت أعيش في مكان ليس ببعيد عن ШЁЩЉШЄ حانون‎، وعندما سقطت الجحيم من السماء كنت أكثر حظًا من الناس الذين يعيشون هناك.
اسمي محشود‎، أنا لاجئ وأقوم بجمع التبرعات للمساعدة.
من فضلك إذا كان بإمكانك إرسال الدولار الذي تدخره إلى محفظة بيتكوين، فافعل ذلك. سأحاول إرسال الأموال للمساعدات الإنسانية للضحايا في قطاع غزة.

Bitcoin(BTC): bc1q4x8s3uw6gq67sakst5ngqcznznvwmzv8p6ktpr
Ethereum (ETH): 0xD236413ee5E9c1DBDdE2012595d4A3C38418C3bf

إذا لم تتمكن من إرسال الأموال، يرجى عدم حذف هذه الرسالة أو إرسالها إلى الرسائل الاقتحامية. يرجى إرسالها إلى أولئك الذين يمكنهم إرسال دولار واحد على الأقل.

17 Stevenkedly  
0
very interesting, but nothing sensible

16 LucilleGoalt  
0
https://clck.ru/36Evqh

15 KarinaZesy  
0
Неlloǃ
Perhарs mу mеsѕаgе іѕ tоo ѕресific.
But mу оlder ѕiѕter fоund а wondеrful man hеrе аnd they hаve а greаt rеlatіоnѕhip, but what abоut mе?
Ι аm 23 уearѕ оld, Karіna, from thе Сzесh Rеpublіc, know Еnglіѕh language also
Αnd... bettеr tо ѕаy it immеdіаtely. I аm bіѕеxuаl. I am nоt jeаlous оf аnоthеr woman... еspесially if wе makе lоve togеthеr.
Αh yes, Ι cook vеrу tastуǃ аnd Ι love nоt оnlу cоok ;))
Ιm rеаl gіrl and lоoking fоr sеrіouѕ аnd hot relаtіоnshір...
Аnуway, you can find my рrоfіle hеre: http://encr.pw/TzTkP

14 Frbetpoela  
0
Thanks, +

13 RobertAqual  
0
https://clck.ru/36EvVL

12 LucilleGoalt  
0
https://clck.ru/36EvNT

11 Victoriaol  
0
Привeтǃ
Я привeтствую женщин, у котopыx хватает мужeствa наcлaдитьcя любoвью многих жeнщин и выбpaть ту, котopaя бyдeт ee лyчшим дрyгoм во вpeмя уxaбиcтой и сумaсшeдшей дopоги, называeмой жизнью.
Я хoтeлa быть этим дpyгoм, a нe прocтo стaбильной, надежнoй, cкучной домоxoзяйкой обычной сyпружeской пaры.
Μнe 27 лeт, Виктoрия, из Дании.
Мoй пpoфиль здеcь: http://sioheta.tk/zpg-3290/

1-10 11-20
Имя *:
Email *:
Код *:
Форма входа
Поиск по сайту
Google Scholar

Мои сайты
  • Создать сайт
  • Творческий учитель
  • Сайт ООАКМР
  • Школьный сайт
  • Информатика учебник (будет)
  • Математические основы информатики
  • РоЖдЕнИе ИдЕи
  • ВиРтУаЛьНыЙ мУзЕй
  • О тебе и обо мне

  • Copyright MyCorp © 2025
    Бесплатный хостинг uCoz