Главная
Форум
Баннеры
ТОП Сайтов
Мониторинг серверов
Банлист Сервера
Статистика Сервера
Наши отзывы
Новые сообщения · Участники · Правила форума · Поиск · RSS
  • Страница 1 из 1
  • 1
Форум » Photoshop » Уроки Photoshop » Урок по созданию игры, используя AS 3.0
Урок по созданию игры, используя AS 3.0
DooDLeZДата: Воскресенье, 28.03.2010, 20:22 | Сообщение # 1

WebMaster
Сообщений: 485
[ ]
:-(
Оригинальное название урока - Create a Flash ball game using AS3

Автор урока - Emanuele Feronate

Ок... я думаю, что пришло время рассказать о Actionscript 3. Даже если AS2 умрет или станет устаревшим еще не скоро, то каждая новая библиотека подобная Box2DFlashAS3 будет написана на AS3, поэтому раньше или позже, но мы все должны будем изучить AS3.
Очевидно, я не остановлюсь говорить о AS2, пока он не умрет окончательно или станет совсем устаревшим…. Но этот урок посвящен AS3.
Я создам тот же прототип игры, объясненный в Flash game creation tutorial - part 1, но используем уже AS3.
Первая вещь, которую вы должны будете сделать – создать новый мувик ball и присвоить ему его linkage name – ball, в общем, все как обычно.
Затем, в панели мувика Properties вы должны будете точно указать класс документа. К тому же в панели Publish Settings вы должны будете, также точно указать путь, где будет сохранен ваш класс (названный ClassPath), как показано на рисунке.

Урок по созданию игры, используя AS 3.0

Теперь, вы готовы написать ваш класс... нажмите на карандаш, чтобы перейти в ваш следующий document class и впишите такой код:

Code
package {//1
       import flash.display.*;//2
       import flash.events.*;//3
       import flash.ui.*;//4
       public class as3ball extends MovieClip {//5
           var the_hero: Sprite = new ball();//6
           var power = 0.3;//7
           var friction = 0.95;
           var xspeed = 0;
           var yspeed = 0;//10
           var up = false;//11
           var down = false;
           var left = false;
           var right = false;//14
           public function as3ball() {//15
               addChild(the_hero);//16
               the_hero.x = 250;//17
               the_hero.y = 200;//18
               stage.addEventListener(KeyboardEvent.KEY_DOWN, key_pressed);//19
               stage.addEventListener(KeyboardEvent.KEY_UP, key_released);//20
               addEventListener(Event.ENTER_FRAME, render);
           }//21
           function key_pressed(e:KeyboardEvent):void {//23
               switch (e.keyCode) {//24
                   case Keyboard.UP :
                       up = true;
                       break;
                   case Keyboard.DOWN :
                       down = true;
                       break;
                   case Keyboard.LEFT :
                       left = true;
                       break;
                   case Keyboard.RIGHT :
                       right = true;
                       break;
               }//37
           }
           function key_released(e:KeyboardEvent):void {//39
               switch (e.keyCode) {
                   case Keyboard.UP :
                       up = false;
                       break;
                   case Keyboard.DOWN :
                       down = false;
                       break;
                   case Keyboard.LEFT :
                       left = false;
                       break;
                   case Keyboard.RIGHT :
                       right = false;
                       break;
               }//53
           }
           private function render(e:Event):void {//55
               if (up) {//56
                   yspeed -= power;
               }
               if (down) {
                   yspeed += power;
               }
               if (left) {
                   xspeed -= power;
               }
               if (right) {
                   xspeed += power;
               }
               xspeed *= friction;
               yspeed *= friction;
               the_hero.x += xspeed;
               the_hero.y += yspeed;//71
           }
       }
}
Строчка 1: объявления пакета, в котором мы будем строить наш класс. Нормальный синтаксис должен быть package.
Строчка 2: подключение пакета, который содержит ядро классов Flash Player, использующих дисплей.
Строчка 3: подключение пакета, который содержит управляющие события, такие как нажатие клавиш, перемещения мышки и других.
Строчка 4: подключение пакета, который содержит пользовательские классы интерфейса, такие, чтобы взаимодействовать с мышкой и клавиатурой.
Строчка 5: объявление основного класса. Class name должно быть тоже, что и у файла с расширением .as
Строчка 6: объявление новой переменной названной the_hero как тип Sprite (думайте о sprite как о мувике в AS2), и закрепляем за ней мувик ball. В дальнейшем, мы будем обращаться к the_hero постоянно, чтобы перемещать шарик.
Строчки 7-10: объявление переменных скорости, силы и трения, показанных в уроке по AS2
Строчки 11-14: объявление четырех булевых переменных, по одной на каждое направление движения. Устанавливаем им значения false. Вы поймете, почему я сделал так, позже, в этом уроке.
Строчка 15: объявление основной функции. Вы знаете это, поскольку основная функция имеет тоже имя, что и класс. Называть так функцию – это способ ее выполнения, как только мувик загрузится.
Строчка 16: добавление мувика на сцену. Метод addChild в AS3 показывает на дисплее объект, который появляется на сцене. В нашем случае показывает the_hero, который содержит в себе мувик ball.
Строчки 17-18: размещение мувика the_hero по центру сцены.

Событие (Event)—это понятие, которое во Flash эквивалентно термину «движение» в физике. Любое изменение исходного состояния, происходящее в фильме, можно считать событием. В ActionScript существует очень важное понятие листенера (listener – по-английски «слушатель»). Листенер — это объект, которому другой, генерирующий события объект посылает сообщение о том, что необходимое действие произошло.

Строчка 19: добавления листенера для события KEY_DOWN (клавиша нажата). Листенеру сообщается функцией key_pressed, что событие происходит.

Листенеры события, которые также иногда называются манипуляторами события, являются функциями Flash Player, которые выполняются в ответ на определенные действия. В нашем случае это действие когда "клавиша нажата", и функция, которая это будет выполнять, называется key_pressed. Функция будет выполняться все время, пока нажата клавиша.

Строчка 20: добавление листенера для события KEY_UP (клавиша отпущена). Листенеру сообщается функцией key_released, что событие происходит.
Строчка 21: добавления листенера для события ENTER_FRAME (начало нового фрейма, подобно в старом AS2 onEnterFrame). Листенеру сообщается функцией render, что событие происходит.
Строчка 23: функция начинает выполняться, при нажатии на клавишу.
Строчки 24-37: выполнение переключения с помощью keycode для нажатой клавиши, устанавливает булевую переменную как true, соответствующую нажатой клавише.
Строчки 39-53: то же самое для функции key_pressed, но key_released устанавливает булевую переменную как false, соответствующую отжатой клавише.

Эти две функции могут показаться бесполезными, но они составляют ядро кода, поскольку я не могу выполнить старую команду Key.isDown... я только могу узнать, когда клавиша нажата и когда клавиша отжата. И помните, что игрок может нажать больше, чем на одну клавишу в одно и тоже время.

Строчка 55: функция будет выполняться в каждом фрейме.
Строчки 56-71 следуем по тем же правилам, рассмотренным в Flash game creation tutorial - part 1.
И после всего этого, наш результат:

Как вы видите, изучать AS3 немного труднее, чем AS2, но если один раз вы поймете основы, то вы сможете получить результаты, которые просто невозможно получить при помощи AS2.
Надеюсь, что этот первый урок поможет вам в изучение AS3, подобно уроку Flash game creation tutorial - part 1, который помог многим начать изучать AS2


mmДата: Суббота, 15.05.2010, 23:01 | Сообщение # 2

Прохожий
Сообщений: 1
[ ]
:-(
Прикольно
Форум » Photoshop » Уроки Photoshop » Урок по созданию игры, используя AS 3.0
  • Страница 1 из 1
  • 1
Поиск:


Все права принадлежат PainKiller.Net.Ru 2009-2010. Дизайн сайта разработан - PainKiller.Net.Ru
Внимание! Рип шаблона запрещен "Нарушение авторского права"! Design bY PainKiller.Net.Ru
Тиц и pr сайта