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

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

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

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

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

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

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

кадра -1 I 1н ic.\ ич нас, кому удобнее думать о кадрах в терминах
физического пространст-
i. i нежели протяженности во времени). Недостаточно знать, что шар
прошел че-1 I* I ракетку. Используя математику, мы можем сказать, имело
ли место столкно-| иепис между кадрами.
Столкновение не было обнаружено по причине "дискретной" природы кадров
Подводя итог, использование математики для обнаружения столкновения
позво-| лит вам:
• писать скрипты, которые будут обрабатывать столкновения между
неправильными фигурами;
• писать независимое от кадров обнаружение столкновения;
• обрабатывать как обнаружение столкновения, так и движение в памяти!
вместо обнаружения, основанного на определении местоположения графических
элементов.
В описаниях к примерам показано, как работать с кодированием обнаружения!
столкновений между различными типами фигур. Для некоторых из них мы
усложняем скрипт обнаружения столкновения таким образом, что он работает
независимо от кадров, а для некоторых мы этого не делаем.
Глава 5. Обнаружение
столкновений________________________________________99
(c)Для некоторых видов обнаружения столкновений независимость от кадров не
дает нам никаких преимуществ. Одним из таких типов является столкновение
линии с линией: когда две линии пересекаются, они в большинстве случаев
не двигаются, что означает, что нам не нужно использовать для них
независимое от кадров обнаружение столкновений. Но для некоторых
ситуаций, таких, как столкновения "окружность - линия" или "окружность -
окружность", независимое от кадров обнаружение столкновений является
необходимым для быстрых игр, вроде бильярда или пинбола.
Обнаружение столкновения точки с окружностью
Мы начнем демонстрацию математического обнаружения столкновения с одного
из простейших типов. Хорош пример, где мы можем использовать обнаружение
I столкновения точки с окружностью, это игра дарц (стрелки).
Наконечником дарца является точка, а мишень состоит из набора
концентрических окружностей.
Гак как же мы определяем, совпала ли точка с окружностью? Представьте,
что у вас два клипа: окружность и точка. Предположим, точка привязки
клипа к окружности является действительным центром окружности. Поскольку
точка н окружность являются клипами, вы можете легко определить позиции
обоих. Также, используя уравнение расстояния, выведенное в гл. 3,
"Тригонометрия 101" (и перечисленные ниже в ActionScript), мы знаем, что
мы можем найти расстояние между точкой и окружностью. С этой информацией
мы можем записать одно условие, которое определяет, имело ли место
столкновение:
4*
100
Часть 2. Исследование осное
Если расстояние между точкой и центром окружности меньше, чем радиус
окружности, то точка попала в окружность.
ю
11
12
13
Обратите внимание, что радиус окружности составляет половину ее ширины.
Чтобы посмотреть наглядно все выше описанное, откройте файл
point_circle.fla из папки Chapter05 на CD. В этом файле три клипа - две
точки и одна окружность. Одна из точек находится снаружи окружности и
имеет имя экземпляра point_clip1, а другая с именем экземпляре
point_clip2 находится внутри окружности. Окружность имеет имя экземпляра
circle_с1. Код ActionScript в этом файле был разработан для опре-
деления того, совпадает ли точка с окружностью. Ниже приведены первые 13
строк кода.
/Определить point 1
о i n 11 = ( } ;
ointl.x =point_clipl._х; ointl.y =point_clipl._y;
/Определить point 2
о i n 12 = ( } ;
oint2.x =point_clip2._x; oint2.y =point_clip2._y;
/Определить circle 1 circlel ={};
circlel.x =circle_clipl,_x; circlel.у =circle_clipl,_y; circlel.radius
=circle clipl. width/2;
Глава 5. Обнаружение
столкновений______________________________________________101
'lu, что делается здесь с помощью ActionScript, очень важно и подобно
тому, что | у дет использовано для большинства игр и примеров,
представленных в этой книге. ЬЛы создаем объект для каждого клипа. Объект
(типа object), когда он только созван, является просто пустым хранилищем.
Это может быть уподоблено обычной папке для бумаг. Когда вы вначале
создаете (или покупаете) папку для бумаг, она пуста. Затем вы можете
использовать ее для хранения информации об определенных вещах, вроде
вашей машины или дома. В отличие от папки для бумаг, объект object
невидим и неосязаем - он представляет собой данные, сохраненные в памяти.
Хранение информации подобным способом является хорошей практикой, потому
чго разделяет данные с интерфейсом. Это разделение позволяет вам
добавлять или далять клипы из сцены без потери данных, сохраненных в
объекте. Позднее вы можете вновь связать объект с другим клипом.
Во Flash существует несколько типов объектов, от объектов MovieClip до
объектов XML. Есть также объект типа object. Именно его мы используем в
коде ActionScript выше.
В других скриптах в этой книге эти объекты будут содержать много других
вещей, иких, как свойства объекта. Например, в случае шара для бильярда,
Предыдущая << 1 .. 26 27 28 29 30 31 < 32 > 33 34 35 36 37 38 .. 210 >> Следующая