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

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

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

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

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

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

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

3 shapel._x += xmov;
4 if (shapel.hitTest(shape2)) {
5 trace("They are colliding!1");
6
7
}
}
? JU..U.
• moviechp_movic-cllp.swT =.
(
\
They ace colliding!! They are colliding11 They are colliding1* They are
collidine!J They are colliding!! They are colliding1' They ace
colliding11 They are colliding1! They are colliding'! They are
colliding1! They are colliding'! They are colliding'! They are
colliding!! They are colliding'\
' Output
I
Options л
Г BB
it
90
Часть 2. Исследование основ
Вы можете заметить, что мы начинаем перемещать shape 1 таким же
способом,- который мы применили в гл. 4, "Основы физики"; вначале
переменная скорости, xmov, устанавливается в начальное значение, а затем
позиция об* новляется в каждом кадре. Где мы начинаем применять новый код
ActionScript, так это в 4-й строке. Это условный оператор: если метод
hitTest() возвращает значение true, то условие выполнено и выполняется
оператор trace; в противном случае ничего не происходит. Это условное
выражение можно перевести в словесную форму: "Если ограничивающий
прямоуголь ник shapel пересекается с ограничивающим прямоугольником
shape2, то вы вести сообщение "Они сталкиваются!!' в окно вывода".
В качестве практического примера вы можете посмотреть фай
balI_fal 1 ing.fla в папке Chapter05 на CD. В этом файле два клипа
шар и пол. Под действием гравитации (рассматриваемой в гл. 4) ша падает.
В каждом кадре мы проверяем наличие столкновения меж ним и полом. Если
hitTest() возвращает значение true, то векторн скорость шара меняет знак
на противоположный и шар отскакивае вверх. Сделайте публикацию SWF для
проверки файла. (Самый бы стрый способ сделать это - нажать кнопки Ctrl-
Enter в Windows ил Command-Return на Мае.) Обратите внимание, что если вы
запусти файл на 30 секунд или около того, шар застрянет в полу. Это следс
вие одного из ограничений hitTest(), которое мы обсудим в разде
"Обнаружении с использованием математики" этой главы.
Столкновение клипа с точкой
Метод hitTest() дает вам возможность определить, находится ли точка (х, в
пределах ограничивающего прямоугольника клипа. Это может быть поле но в
некоторых игровых ситуациях. Обычно это случаи, когда используете мышь.
Простые игры в стиле "нажми и уничтожь" используют этот вид or ределения
столкновения. Возьмем, к примеру, игру с воздушным шаром, ли пользователь
нажимает мышь, когда курсор расположен над шаро то воздушный шар
поднимается. Это простейший способ для определени находится ли курсор
мыши над клипом, без использования кнопки. Одна большинство игр в стиле
"нажми и уничтожь" сделаны с кнопками. Причин этого, по моему мнению, в
том, что использование данного метода обнар жения не дает в играх
большого эффекта.
ва 5. Обнаружение столкновений
91
1иже приводится синтаксис использования hitTest() для определения
пересечения точки с ограничивающим прямоугольником клипа.
myMovieClip.hitTest(х,у)
Ь в переводе на обычный язык: "Попадает ли точка с координатами х и у } I
раничивающий прямоугольник myMovieClip?"
Как и в предыдущем разделе, ответ на этот вопрос (т. е. результат строки
>v tionScript): будет ли это true или false.
Для просмотра этих действий откройте файл balloon_pop.fla из папки
Chapter05 на CD. Вы увидите клип, содержащий изображение воздушного шара.
Этот клип имеет имя экземпляра balloon. Имеется код ActionScript во
фрейме 1 в слое Actions, который выполняется, когда нажимается кнопка
мыши. Этот скрипт определяет, находится ли курсор мыши над воздушным
шариком, и если да, то "приказывает" воздушному шарику лопнуть. Ниже
приведен код ActionScript для реализации этого.
1 _root.onMouseDown = function () {
2 mx = _xmouse;
3 my = _ymouse;
4 if (balloon.hitTest(mx, my)) {
5 balloon.p 1 a у () ;
6 }
7 }
В первой строке этого скрипта мы определяем функцию, которая будет
вызвана, рчда нажата клавиша мыши (и еще не отпущена). Когда это
происходит, уста-
92
Часть 2. Исследование основ
навливаются две переменные - тх и ту - для сохранения х- и j-координат
поло-| жения курсора мыши. Затем в строке 4 мы используем оператор if для
определе ния, находится ли курсор мыши в границах прямоугольника клипа
balloon. При удовлетворении этого условия оператор balloon.hitTest(mx,my)
должен возвратить в результате true, подтверждая "столкновение" курсора и
воздушного шара. Если] условие выполнено, то выполняется строка 5 и клип
под названием balloon вое производит анимацию лопающегося воздушного
шара.
/мь Анимация лопающегося шара была создана внутри клипа balloon. Пер-1
WMw вый кадр этого клипа представляет воздушный шар в целом состоянии^
Кадры после первого представляют процесс взрыва воздушного шара
Заключительный кадр анимации является пустым.
Идея, использованная в примере balloon_pop.fla, может быть легко прг
менена к любому количеству клипов. Для просмотра такого расширег ного
примера откройте файл balloon_pop many .fla из папки Chapter05 CD. В этом
Предыдущая << 1 .. 23 24 25 26 27 28 < 29 > 30 31 32 33 34 35 .. 210 >> Следующая