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

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

Пятница, 27.12.2024, 22:28
Главная » Статьи » Разработка игр » Руководство создания Flash игры AS 3

Руководство по созданию AS3 Flash игры – часть 3: стены
Добро пожаловать на 3ю ступень руководства.
Пора создавать стены, или все, что похоже на неподвижную, смертоносную преграду.

Продолжаем объектно-ориентированное программирование, новый объект под названием стена, имеет класс, закодированный в файле с именем wall.as, и сохраненный в той же ветви, что и предыдущие объекты.
Вот как можно создать объект «стена» в главном файле as3circle.as:
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 var level_wall = new wall;
  8.         public var number_of_coins = 4;
  9.         public function as3circle() {
  10.             for (var i=1; i<=number_of_coins; i++) {
  11.                 var ingame_coin = new coin;
  12.                 addChild(ingame_coin);
  13.             }
  14.             addChild(circle_hero);
  15.             var keyboard_sprite = new Sprite();
  16.             keyboard_input = new keys(this);
  17.             addChild(level_wall);
  18.             stage.addEventListener(Event.ENTER_FRAME,on_enter_frame);
  19.         }
  20.         public function on_enter_frame(event:Event) {
  21.             if (keyboard_input.is_left()) {
  22.                 circle_hero.apply_force(-1,0);
  23.             }
  24.             if (keyboard_input.is_right()) {
  25.                 circle_hero.apply_force(1,0);
  26.             }
  27.             if (keyboard_input.is_up()) {
  28.                 circle_hero.apply_force(0,-1);
  29.             }
  30.             if (keyboard_input.is_down()) {
  31.                 circle_hero.apply_force(0,1);
  32.             }
  33.         }
  34.     }
  35. }
Переменная level_wall записана в 7 строке, после этого я просто помещаю объект «стена» в игру в 17 строку.
Это все, что касается главного файла. Обратите внимание, как стройно все выглядит, не смотря на изобилие нововведенных деталей.
В этом вся прелесть классов. Помните.
Что касается wall.as файла, здесь все полностью расписано:
ACTIONSCRIPT:
  1. package {
  2.     import flash.display.Sprite;
  3.     import flash.events.Event;
  4.     public class wall extends Sprite {
  5.         // variables used in this class
  6.         private var point_x:int;
  7.         private var point_y:int;
  8.         // precision is the number of points I am going to calculate
  9.         // on hero's circumference
  10.         private var precision:int = 36;
  11.         // calculating once for all 2*PI
  12.         private var twopi: Number = Math.PI*2;
  13.         // main function
  14.         public function wall() {
  15.             place_wall();
  16.             // checking for collisions at every frame
  17.             addEventListener(Event.ENTER_FRAME, check_collisions);
  18.         }
  19.         private function check_collisions(e:Event) {
  20.             for (var i=0; i<precision; i++) {
  21.                 // checking for collisions between the hero and the wall
  22.                 point_x = as3circle(root).circle_hero.x + 25 * Math.cos(twopi*i/precision);
  23.                 point_y = as3circle(root).circle_hero.y - 25 * Math.sin(twopi*i/precision);
  24.                 if (this.hitTestPoint(point_x, point_y, true)) {
  25.                     // in case of collision, reset the hero
  26.                     as3circle(root).circle_hero.init();
  27.                 }
  28.             }
  29.         }
  30.         private function place_wall() {
  31.             x=0;
  32.             y=175;
  33.         }
  34.     }
  35. }
Чтобы проверить столкновение героя и стены, я пользуюсь законами тригонометрии, потому что в данном случае эти расчеты гораздо более точны, чем hitTestObject().
Вот результат:


Мы все ближе и ближе к созданию законченной игры…Следующее, что я расскажу – подсчет очков.

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