start();
20 }
21 }
22 }
Эта функция вызывается всякий раз, когда обнаружено столкновение. Положение мяча по x передается в эту функцию, так что мы можем определить, насколько сильно нужно панорамировать звук. Скорость мяча, когда он сталкивается со стеной, также передается в эту функцию, так что мы можем определить требуемый уровень звука. Передаваемая скорость представляет собой скорость, которая изменяется в результате столкновения. Например, когда мяч сталкивается с полом, мы передаем скорость y (не показано), поскольку скорость по x не изменяется. В строке 3 мы устанавливаем переменную с именем ballX. Положение по x, переданное в эту функцию, представляет собой положение мяча в основной сцене. Что нам необходимо знать для правильной установки панорамирования, так это положение мяча по x относительно стен. Переменная ballX хранит положение мяча по отношению к левой стене. В строке 4 мы устанавливаем переменную с именем factor. Концепция, проиллюстрированная здесь, очень полезна и называется нормализацией. Переменная factor является нормализированным числом; это означает, что она всегда имеет значение между 0 и 1. Мы ищем расстояние мяча от левой стены в нормализированных выражениях. Если factor равен 1, то мяч находится у правой стены; если он равен 0, то мяч находится у левой стены. Если он имеет значение между 0 и 1, то мяч где-то между двумя стенами. Вы находите нормализованное значение взятием значения, которое вы хотите нормализовать, в данном случае ballX, и делением его на максимальное значение, которое оно может принимать, в данном случае это расстояние между левой и правой стенами.
Далее мы устанавливаем переменную с именем pan для хранения значения панорамирования (строка 5). Панорамирование равное -100 означает, что весь звук идет от левого динамика, а панорамирование равное 100 означает, что звук полностью идет от правого динамика, при полной возможной разнице между крайними значениями панорамирования в 200 единиц. Мы можем установить начальное значение панорамирования в -100 и прибавлять к нему значение factor*200