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

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

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

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

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

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

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

как обращаться со звуками управления автомобилем от холостого хо, (не
движется) до максимальной скорости и как обрабатывать звуки уск рения или
торможения в некоторый момент времени. Это реализовл с четырьмя звуками:
• циклом воспроизведения для холостого хода;
• циклом воспроизведения, когда машина движется на максимальной
скорое! к
• звуком ускорения, который воспроизводится во всем диапазоне от
холоегш хода до максимальной скорости;
• звуком торможения, который воспроизводится во всем диапазоне от
макс< мальной скорости до холостого хода.
Звуки ускорения и торможения имеют одинаковую длину. (В действительное i|
звук торможения был реально получен переворачиванием звука ускорен^ в
программе редактирования звука.)
пава 12. Звук в играх
323
Когда автомобиль ускоряется, мы воспроизводим звук ускорения. Когда иг-ж
приказывает машине тормозить, мы проверяем положение звука ускорения.
1 гем мы используем эту информацию для нахождения начального
положения 1я звука торможения. Аналогично, если в процессе торможения
игрок прика-.1вает машине ускоряться, мы проверяем текущую позицию звука
торможения
I па основе этой информации определяем, где начинать звук ускорения.
Получилось? Теперь давайте рассмотрим код ActionScript. Сначала мы ис-
Юльзуем следующие операторы для создания объекта звука для каждого из че-
ырех звуков и подключаем звук к каждому объекту:
1 accel = new Sound();
2 accel .attachSoundf" accel") !
3 decel = new Sound();
4 aecel .attachSoundf"decel") !
5 hi lo op = new Sound();
6 hi lo op.attachSoundf"hi lo op" )
7 1 ow_l oop = new Sound();
8 low 1 oop.attachSoundf"low loop
9 accel = new Soundf);
10 acce 1. attachSound("accel" ) ;
11 dece 1.attachSoundf"decel" ) ;
А здесь функции, которые воспроизводят
1 f unct ion playAccel (offset) f
2 ас с el.setVolume(vol);
3 ас с el.start(offset);
4 acc el. onSoundComplete = acce
5 pla ying = "accel";
6 }
7 f unct ion playDecel (offset) f
8 dec el.setVolume(vol);
9 dec el.start(offset) ;
10 de cel.onSoundComplete = dec
И Pi aying = "decel";
12 }
13 f unc tion accelDone () {
14 ac с e 1. s t о p () ;
15 hi loop.setVolume (vol);
16 hi loop.start ( 0 , 100000 );
17 }
324
Часть 2. Исследование осном
18 function decelDone() f
19 dece1.s t op();
20 low_loop . setVolume(vol);
21 1ow_loop.start(0, 100000);
22 j
Первая функция, playAccel(), используется для воспроизведения звука
ускорен ния. Каждая из этих функций принимает параметр с именем offset,
который па пользуется для смещения начальной точки воспроизведения звука.
Если npiJ должительность звука равна 10 секундам и смещение равно 3
секундам, то ко4 ActionScript пропустит первые 3 секунды звука и начнет
воспроизведение пен медленно. В строке 4 мы устанавливаем обработчик
события для звука ускорв ния. Когда этот звук завершает воспроизведение,
он вызывает функции) ассеЮопе(). Это позволяет нам легко сказать, когда
ускорение закончено, t.ii что мы знаем, когда начать воспроизводить цикл
звука максимальной скорое щ В строке 7 следующая функция, playDecel(),
воспроизводит звук торможения Когда его воспроизведение закончено, она
вызывает функцию decelDone(), так что может начать воспроизводиться цикл
звука холостого хода. Эти событи| onSoundComplete происходят лишь тогда,
когда звук может быть завершен. L;<j ли, например, звук ускорения
остановлен прежде, чем он закончил воспроизва диться, то функция
ассеЮопе() не будет вызвана.
Заключительная часть кода ActionScript в этом файле перехватывает все дсЛ
ствия пользователя и обрабатывает начало и остановку звуков, ставших
резупи татом этих действий. Он также включает управление объектом bar,
которьи не связан функционально со звуками.
1 _root.onEnterFrame = function() {
2 if (playing == "decel" || playing == null) {
3 bar._yscale = (1-dece1. position/dece1.duration)* 100;
4 if (Key . isDown(Key.UP)) {
5 if (playing == null) {
6 var start = 0;
7 } else {
8 var start = (accel.duration-decel.posit ion)/100 0 ;
9
10 11 12
13
14
decel. s t о p(); low_loop.stop(); playAccel(start);
Глава 12 Звук в играх
325
15 if (playing == "accel" || playing == null) {
16 bar._yscale = accel. position/accel.duration*100;
17 if (Key.isDown(Key.DOWN)) (
18 if (playing == null) ¦
19 var start = 0;
20 } else (
21 var start = (decel.duration-accel.position)/1000;
2 2 j
23 accel.stop () ;
24 hi_loop.stop ();
25 playDecel (start);
26 }
27 }
2 8 } ;
Приведенное выше событие onEnterFrame выполняет два основных условных
• лока в каждом кадре. Они проверяют, разгоняется ли или тормозится
автомо-пиль в данный момент. Если машина тормозится (строка 2), то клип
bar (полоска \ ровня скорости) в сцене изменяется в размере для
демонстрации того, что происходит. Этот клип ничего не делает с самими
звуками; он лишь дает нам визу-,i 1ьное представление о происходящем.
Затем скрипт проверяет, нажата ли грелка вверх. Если да, то скрипт
начинает воспроизводить звук с положения 0 п 1И, если машина уже
Предыдущая << 1 .. 99 100 101 102 103 104 < 105 > 106 107 108 109 110 111 .. 210 >> Следующая