Приветствую Вас Гость | RSS

Flash. Обо всем по маленьку

Среда, 23.07.2025, 06:16
Главная » Статьи » Разработка игр » Руководство создания Flash игры AS 3

1 часть

Как объединить классы

Объединение классов – очень важный процесс, особенно для AS3, вот как Вы можете это сделать:
На панели свойств movie:

Пишете as3circle в поле классов документа, что установит as3circle.as как главный классификационный файл.
На панели свойств circle object:

Пишете circle в поле классов, это создаст классификационный файл для объекта circle.
Теперь ваш .fla файл и три файла .as должны находиться в одной ветви.
Данная кодировка применительна для всех файлов…Думаю, нет необходимости комментировать еще что-либо, ведь это делалось уже много раз…но если Вам все-таки нужны пояснения, спрашивайте…

as3circle.as file:


ACTIONSCRIPT:
  1. package {
  2.     import flash.display.Sprite;
  3.     import flash.events.Event;
  4.     public class as3circle extends Sprite {
  5.         public var keyboard_input:keys;
  6.         public var circle_hero = new circle;
  7.         public function as3circle() {
  8.             addChild(circle_hero);
  9.             circle_hero.init();
  10.             var keyboard_sprite = new Sprite();
  11.             addChild(keyboard_sprite);
  12.             keyboard_input = new keys(keyboard_sprite);
  13.             stage.addEventListener(Event.ENTER_FRAME,on_enter_frame);
  14.         }
  15.         public function on_enter_frame(event:Event) {
  16.             if (keyboard_input.is_left()) {
  17.                 circle_hero.apply_force(-1,0);
  18.             }
  19.             if (keyboard_input.is_right()) {
  20.                 circle_hero.apply_force(1,0);
  21.             }
  22.             if (keyboard_input.is_up()) {
  23.                 circle_hero.apply_force(0,-1);
  24.             }
  25.             if (keyboard_input.is_down()) {
  26.                 circle_hero.apply_force(0,1);
  27.             }
  28.         }
  29.     }
  30. }

circle.as file:

 
ACTIONSCRIPT:
  1. package {
  2.     import flash.display.Sprite;
  3.     import flash.events.Event;
  4.     public class circle extends Sprite {
  5.         private var x_speed:Number;
  6.         private var y_speed:Number;
  7.         private var power:Number;
  8.         private var friction:Number;
  9.         private var gravity:Number;
  10.         public function circle() {
  11.             addEventListener(Event.ENTER_FRAME, movement);
  12.         }
  13.         private function movement(e:Event) {
  14.             x+=x_speed;
  15.             y+=y_speed;
  16.             rotation += x_speed;
  17.             y_speed += gravity;
  18.             x_speed *= friction;
  19.             y_speed *= friction;
  20.             if (x>500 || x<0 ||  y>400 || y<0) {
  21.                 init();
  22.             }
  23.         }
  24.         public function apply_force(x_force,y_force) {
  25.             x_speed += (x_force*power);
  26.             y_speed += (y_force*power);
  27.         }
  28.         public function init() {
  29.             gravity = 0.1;
  30.             power = 0.66;
  31.             friction = 0.99;
  32.             x_speed = 0;
  33.             y_speed = 0;
  34.             x = 250;
  35.             y = 200;
  36.         }
  37.     }
  38. }

keys.as file

ACTIONSCRIPT:
  1. package {
  2.     import flash.events.KeyboardEvent;
  3.     public class keys {
  4.         private var press_left = false;
  5.         private var press_right = false;
  6.         private var press_up = false;
  7.         private var press_down = false;
  8.         private var press_space = false;
  9.         public function keys(movieclip) {
  10.             movieclip.stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down);
  11.             movieclip.stage.addEventListener(KeyboardEvent.KEY_UP, key_up);
  12.         }
  13.         public function is_left() {
  14.             return press_left;
  15.         }
  16.         public function is_right() {
  17.             return press_right;
  18.         }
  19.         public function is_up() {
  20.             return press_up;
  21.         }
  22.         public function is_down() {
  23.             return press_down;
  24.         }
  25.         public function is_space() {
  26.             return press_space;
  27.         }
  28.         private function key_down(event:KeyboardEvent) {
  29.             if (event.keyCode == 32) {
  30.                 press_space = true;
  31.             }
  32.             if (event.keyCode == 37) {
  33.                 press_left = true;
  34.             }
  35.             if (event.keyCode == 38) {
  36.                 press_up = true;
  37.             }
  38.             if (event.keyCode == 39) {
  39.                 press_right = true;
  40.             }
  41.             if (event.keyCode == 40) {
  42.                 press_down = true;
  43.             }
  44.         }
  45.         private function key_up(event:KeyboardEvent) {
  46.             if (event.keyCode == 32) {
  47.                 press_space = false;
  48.             }
  49.             if (event.keyCode == 37) {
  50.                 press_left = false;
  51.             }
  52.             if (event.keyCode == 38) {
  53.                 press_up = false;
  54.             }
  55.             if (event.keyCode == 39) {
  56.                 press_right = false;
  57.             }
  58.             if (event.keyCode == 40) {
  59.                 press_down = false;
  60.             }
  61.         }
  62.     }
  63. }
 

Теперь старая игра запущена с классами AS3.

 

скачайте исходник и попробуйте.

Категория: Руководство создания Flash игры AS 3 | Добавил: anti_k (26.02.2010)
Просмотров: 1544 | Рейтинг: 3.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]