attachSound("hit");
8 hit.setVolume(volume);
9 hit.start();
10 }
11 }
В строке 3 мы устанавливаем переменную с именем maxSpeed со значением 5. Это значение предписывает скрипту воспроизводить звук с максимальной громкостью, когда скорость изменяется в столкновении на это значение (и конечно вы можете изменить это значение по своему разумению). В данном случае, если разница скорости в результате столкновения равна 5, то мы услышим максимальный уровень звука. Давайте взглянем на две строки кода, которые вызывают эту функцию, внутри функции ball2BallReaction():
1 var speedDiff =Math.sqrt((b1.xmov-xVel1)*(b1.xmov-xVel1)
.+(b1.ymov-yVel1)*(b1.ymov-yVel1));
2 playSound(speedDiff);
В строке 1 мы используем теорему Пифагора (уравнение расстояния), чтобы найти разницу между скоростью до столкновения и скоростью после столкновения. Это значение затем передается в функцию playSound() (строка 2).
Создайте файл SWF, чтобы убедиться, что все работает правильно. Вернитесь к исходному FLA файлу и измените некоторые из переменных скорости; снова проверьте, чтобы убедиться, что этот метод работает хорошо. Вы можете использовать эту технику динамического уровня звука для игр типа бильярд или любых других игр, в которых два объекта сталкиваются с потенциальным изменением скоростей.
Управление уровнем звука через ускорение
До сих пор мы говорили о простой скорости. Теперь, в нашем третьем примере мы добавим ускорение и обрисуем простую технику, используемую для ускорения и замедления в гонках. Представьте, что машина находится на линии старта гонки. Когда дают старт, вы жмете на акселератор, и звучит звук ускорения. Что происходит, если вы решили в середине процесса ускорения включить торможение? Ну, вам нужно воспроизвести звук торможения. Звучит достаточно просто, верно? Проблема в том, что звук торможения отличался бы в зависимости от того, как быстро двигался автомобиль, когда вы начали торможение.
Откройте файл car