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

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

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

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

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

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

Макар Дж. Секреты разработки игр в Macromedia Flash MX — М.: КУДИЦ-ОБРАЗ , 2004. — 608 c.
ISBN 0-201-77021-0
Скачать (прямая ссылка): sekretirazrabotkiigr2004.djvu
Предыдущая << 1 .. 98 99 100 101 102 103 < 104 > 105 106 107 108 109 110 .. 210 >> Следующая

скорость у (не показано), поскольку скорость по х не тменяется. В строке
3 мы устанавливаем переменную с именем ballX. Положение по х, переданное
в эту функцию, представляет собой положение мяча в ос-
• овной сцене. Что нам необходимо знать для правильной установки
панорами-v ования, так это положение мяча по х относительно стен.
Переменная ballX хранит положение мяча по отношению к левой стене. В
строке 4 мы устанавливаем 'временную с именем factor. Концепция,
проиллюстрированная здесь, очень по-с ша и называется нормализацией.
Переменная factor является нормапизирован-
> ым числом; это означает, что она всегда имеет значение между 0 и 1.
Мы ищем расстояние мяча от левой стены в нормализированных выражениях.
Если factor
равен 1, то мяч находится у правой стены; если он равен 0, то мяч
находит! у левой стены. Если он имеет значение между 0 и 1, то мяч где-то
между дв>ч стенами. Вы находите нормализированное значение взятием
значения, котор! вы хотите нормализовать, в данном случае ballX, и
делением его на максимал^ ное значение, которое оно может принимать, в
данном случае это расстояпя между левой и правой стенами.
Далее мы устанавлива ..... ~ -~ "
панорамирования (строка звук идет от левого дина!\ полностью идет от
праве крайними значениями па начат ьное значение пане factor*200. Если
factor рав намика. Если factor равен водиться из левого динам
В строках 6-9 мы опр будем использовать это уровня звука. Если factor
factor равен 0, уровень ¦ и допустимую максимал В заключение в строках 1
ем звук bounce к этому звука (строка 17), устана изводим звук (строка
19).
от скорости, с которой м как изменяется панорам и
Создайте SWF из этого
Г лава 12. Звук в играх
321
Управление звуком на основе факторов, отличных от скорости
Для просмотра следующего примера откройте файл billiard_____ball.fla
в папке Chapterl2. Это файл был напрямую взят из гл. 6, "Реакция на
столкновения", и изменен для воспроизведения звука при возникновении
столкновения. В этом разделе я собираюсь продемонстрировать, как вы
можете динамически изменять уровень звука на основе другой информации,
нежели скорость. В случае отскока мяча от стены уровень зависит от
скорости мяча. Но представьте два бильярдных шара, двигающихся очень
быстро в одном направлении. Если шар I лишь немного быстрее, чем шар 2,
он может догнать его и столкнуться с шаром 2. Но даже при том, что шары
двигаются очень быстро, это не означает, что столкновение должно быть
громким, поскольку они могут лишь слегка соприкоснуться. Вместо скорости
мы будем искать изменение скорости. Уровень звука полностью основан на
разности между скоростью до столкновения и скоростью после столкновении.
Ыже приведена функция playSound().
1 function playSound(speedDiff) (
2 if (s oundOn) (
3 var maxSpeed = 5;
4 var factor = spee dDiff/
5 var volume = 100* factor
6 hit = new Sou nd() i
7 hit .attachSou nd (" hit") ;
8 hit .setVolume (vol ume) ;
9 hit . s t a r t () ;
10 }
11 }
И строке 3 мы устанавливаем переменную с именем maxSpeed со значением 5.
>го значение предписывает скрипту воспроизводить звук с максимальной
громкостью, когда скорость изменяется в столкновении на это значение (и
конечно, чы можете изменить это значение по своему разумению). В данном
случае, если разница в скорости в результате столкновения равна 5, то мы
услышим макси-тальный уровень звука. Давайте взглянем на две строки кода,
которые вызывает эту функцию внутри функции ball2BallReaction().
II 234
322
Часть 2. Исследование осн<
1 var speedDiff = Math.sqrt((Ы.xmov-xVell)*(Ы.xmov-xVell + (Ы .ymov-
yVell) * (Ы . ymov-yVell) ) ;
2 playSound(speedDiff);
В строке 1 мы используем теорему Пифагора (уравнение расстояния), чтоЯ
найти разницу между скоростью до столкновения и скоростью после стол к
hoi' ния. Это значение затем передается в функцию playSound() (строка 2).
Создайте файл SWF, чтобы убедиться, что все работает правильно. Верните^
к исходному FLA-файлу и измените некоторые из переменных скорости; снс
проверьте, чтобы убедиться, что этот метод работает хорошо. Вы можете I
пользовать эту технику динамического уровня звука для игр типа бильярда
иЯ любых других игр, в которых два объекта могут измененить свою
скорость.
Управление уровнем звука через ускорение
До сих пор мы говорили о простой скорости. Теперь в нашем третьем пример
мы добавим ускорение и обрисуем простую технику, используемую для ускор
ния и замедления в гонках. Представьте, что машина находится на линии
старЛ гонки. Когда дают старт, вы жмете на акселератор и звучит звук
ускорения. Ч(( происходит, если вы решили в середине процесса ускорения
включить тормож ние? Ну, вам нужно воспроизвести звук торможения. Звучит
достаточно прос; верно? Проблема в том, что звук торможения отличался бы
в зависимости "1 того, как быстро двигался автомобиль, когда вы начали
торможение.
Откройте файл car.fla в папке Chapterl2. В этом примере мы показы(5. •:
Предыдущая << 1 .. 98 99 100 101 102 103 < 104 > 105 106 107 108 109 110 .. 210 >> Следующая