Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript. Гэри Розенцвейг
Чтение книги онлайн.

Читать онлайн книгу Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript - Гэри Розенцвейг страница 32

СКАЧАТЬ style="font-size:15px;">      С помощью этого приема можно обращаться к любым событиям, например onMouseUp, onKeyUp, onLoad и т. д. Полное описание процедур обращения к событиям вы можете найти в документации. Пример использования данной технологии можно найти в главе 13 начиная с игры «Найди картинку».

      Урок 21. Пересечение объектов

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

      Основной способ обнаружения ситуации, в которой два объекта пересекаются или объект закрывает определенную точку экрана, – использовать функцию hitTest. Аргументом функции hitTest могут быть координаты какой-либо точки или ссылка на обьект, например клип, кнопку или текстовое поле.

      Давайте начнем с проверки пересечения клипа с точкой. Предположим, вы хотите определить, находится ли курсор над определенным клипом на рабочем поле. Клипу следует назначить следующий код:

      onClipEvent (enterFrame) {

      if (this.hitTest(_root._xmouse,_root._ymouse,true)) {

      this._x = int(Math.random()*550);

      this._y = int(Math.random()*400);

      }

      }

      Строка this.hitTest() обозначает, что функция hitTest применяется к текущему клипу. Она включает три параметра: горизонтальное и вертикальное положение мыши, а также булевый параметр (значения true/false). Последний параметр определяет, использует ли Flash для контроля пересечения прямоугольную область, в которой содержится данный клип, или точную форму изображения в клипе. Во втором случае параметр должен быть равен true.

      Исходный файл: Runaway.fla

      Вышеописанный код рассматривается в примере Runaway.fla. Если установить курсор над клипом, он переместится в случайную точку экрана.

      Исходный файл: Collision.fla

      Для того чтобы определить, пересекаются ли два клипа, вы можете использовать один параметр – указатель на второй клип. В ролике Collision.fla на рабочем поле находятся два клипа. Клип большего размера называется "target", меньшего – "bullet". За пределами рабочего поля расположен клип "actions" со следующим кодом:

      onClipEvent (enterFrame) {

      // Auyniyai, iiiaea ee ioey a ieoaiu.

      if (_root["target"].hitTest(_root["bullet"])) {

      // Iiiaaaiea, oaaee.eaaai oaeu.

      _root["target"]._xscale += 5;

      _root["target"]._yscale += 5;

      // Oae.aai ioe..

      _root["bullet"]._x = 350;

      } else {

      // Iao iiiaaaiey, ioey eaoeo aaeuoa.

      _root["bullet"]._x -= 5;

      }

      }

      Код задает перемещение снаряда на 5 пикселов. Если сталкиваются два клипа, мишень немного увеличивается за счет увеличения масштаба на 5 %. Горизонтальная координата снаряда принимает первоначальное значение, и он может опять начинать свое перемещение.

      Вы научились изменять масштаб клипа и его положение. Далее вы узнаете другие способы, с помощью которых можно изменить внешний вид клипа.

      Урок 22. Изменения содержимого экранас помощью клипов

      К сожалению, Flash не позволяет заменить один клип другим на рабочем СКАЧАТЬ