Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Секреты разработки игр в Macromedia Flash MX - Макар Дж.

Макар Дж. Секреты разработки игр в Macromedia Flash MX — М.: КУДИЦ-ОБРАЗ , 2004. — 608 c.
ISBN 0-201-77021-0
Скачать (прямая ссылка): sekretirazrabotkiigr2004.djvu
Предыдущая << 1 .. 22 23 24 25 26 27 < 28 > 29 30 31 32 33 34 .. 210 >> Следующая

столкнувшимися. Некоторые столкновения просты, такие, как пересечение
курсора мыши с клипом или кнопкой. Другие столкновения сложны, вроде
отскакивания шара от наклонной линии.
86 Часть 2. Исследование осн
В этой главе мы охватим несколько наиболее общих типов обнаружения столк]
новений, включая пересечения или столкновения линий с линиями, и прям
угольников с другими прямоугольниками.
Как я упоминал ранее, есть два основных вида программного обнаружения
столЦ новения, используемые во Flash: использование метода hitTest()
объекта MoviCli| и использование математики для определения, произошло ли
столкновение.
Как вы увидите в дальнейшем в этой главе, hitTest() применяется, но он г
раздо хуже для кода обнаружения столкновения, чем использование математик
Используя математику для определения столкновений, вы можете не только oi
ределить, произошло ли столкновение, но и в некоторых случаях даже сказат
будет ли столкновение и в каком именно месте произойдет это столкновение^
FfaM необходим такой уровень точности для некоторых из более сложных тип
игр, таких, как пинбол или бильярд.
^ пава 5. Обнаружение столкновений_________________________________87
Обнаружение с использованием hitTest
L.____________________________________________________________________
Как вы, вероятно, знаете, объекты MovieClip во Flash содержат много
методов н свойств, которые помогают в работе с клипами. Когда клип создан
в авторской среде разработки или с помощью кода ActionScript, он
наследует все ме-тды и свойства объекта MovieClip. Эти методы и свойства
становятся после >гого доступны для экземпляра нового клипа.
Мы можем использовать метод hitTest() объекта MovieClip для обнаружения
столкновения в трех простых сценариях. Но прежде чем мы обсудим эти три
типа столкновений, я введу для вас новый термин - ограничивающий
прямоугольник. Ограничивающим прямоугольником называется воображаемый
прямоугольник, который охватывает все содержимое клипа. Если у вас есть
клип v окружностью внутри, то ограничивающий прямоугольник для этого
клипа представляет собой квадрат, который точно совпадает по величине с
размерами окружности, каждой стороной квадрата касаясь окружности.
Аналогично если у вас фигура неправильных очертаний или много фигур в
одном клипе, то ограничивающий прямоугольник будет равен прямоугольнику,
который касается самой верхней части клипа, самой левой части клипа,
самой правой части клипа и самой нижней части клипа.
Теперь, когда у вас есть представление об ограничивающем прямоугольнике
клипа, мы можем вспомнить о трех видах обнаружения столкновения, которые
возможны с использованием hitTest().
88
Часть 2. Исследование основ
Столкновение клипа с клипом
Этот тип обнаружения столкновения определен, если ограничивающие
прямоугольники двух клипов перекрываются. Фигуры внутри клипов могут
соприкасаться, а могут и не соприкасаться между собой, но, пока
пересекаются два ограничивающих прямоугольника, столкновение произошло.
Теперь давайте покопаемся в использованном коде ActionScript. Поскольк
hitTest() является методом объекта MovieClip, он может быть применен
тольк; к клипу (исключая любой другой вид объекта, такой, как графика или
текстов! поле). Далее приводится синтаксис использования hitTest() для
определен! столкновения двух клипов:
myMovieClip.hitTest(target_MovieClip)
Эта строка кода ActionScript начинается с имени экземпляра клипа После
имени э земпляра вызывается метод hitTest() с передачей в него параметра.
Значением этог| параметра является имя экземпляра другого клипа. В
переводе на обычный язык, э строка кода ActionScript выглядела бы как
вопрос, звучащий примерно так: "Пер(c) кается ли ограничивающий
прямоугольник myMovieClip с ограничивающим пря! угольником
target_MovieClip?"
Когда эта строка ActionScript выполнена, Flash дает вам ответ на этот
вопр'
В обычном языке вы могли бы ожидать ответа "да" или "нет"; в ActionScri
ответ выглядит как true (да) или false (нет).
Откройте файл movieclip movieclip.fla в папке Chapter05 на CD д.
просмотра примера. В этом FLA-файле мы имеем два клипа - shape! и shape2.
Этот файл был запрограммирован таким образом, что объе ,1 shape 1 будет
двигаться вправо и в каждом фрейме проверять, не про
г
I пава 5. Обнаружение столкновений
89
изошло ли столкновение между объектами shape 1 и shape2. Если
столкновение произошло, то мы просто выполняем оператор trace для
отображения, что это случилось. Ниже приводится использованный для этого
код ActionScript.
¦а*. Оператор trace предназначен лишь для целей тестирования и отладки.
и" Если вы напечатаете trace ("My пате is Jobe and I'm a physics major")
в панели кода Flash MX и затем протестируете фильм, вы увидите, что это
сообщение появляется в окне вывода Output. Оператор trace отображается
лишь в режиме тестирования фильма в среде Flash, и никогда на Web-
страницах или в исполняемом SWF-файле.
1 xmov = 3;
2 _root.onEnterFrame = function () {
Предыдущая << 1 .. 22 23 24 25 26 27 < 28 > 29 30 31 32 33 34 .. 210 >> Следующая