2013-11-09 2 views
0

Я создаю меню опций для своей игры, где есть кнопка отключения звука для звуковых эффектов и музыки. Когда отмечена кнопка отключения звука для музыки, вся музыка должна быть отключена на протяжении всей игры. Когда отмечена кнопка отключения звука для звуковых эффектов, все звуковые эффекты должны быть отключены. Оба могут быть проверены, или только один может быть проверен. Если один из них проверен, другой должен работать. Я знаю, что могу использовать функцию SoundMixer.stopAll(), но это не совсем то, что я ищу. Не могли бы вы помочь в том, как я могу создать этот код?Как остановить все звуки, кроме некоторых?

ответ

1

Вы можете создать класс SoundManager, который будет обрабатывать различные звуковые эффекты/музыку в каждом звуковом канале, а затем группировать эти SoundChannels по любым критериям, которые у вас есть.

Этот SoundManager также будет иметь состояние без звука для любых групп, которые у вас есть, которые вы можете проверить/установить.

У вас может быть метод playSound, который проверяет это состояние отключения звука, чтобы определить, должно ли оно фактически воспроизводить этот звук/музыку.

Таким образом, основная идея заключается в том, что все звуковые сигналы запускаются через этот класс. Если при отключении звука звук будет изменен на значение true для звуковых эффектов, он остановит все воспроизводимые звуковые эффекты.

Как вы группируете свой звук, зависит от вас. Вы можете хранить каждый тип в массиве, так что вы можете просто перебирать его, чтобы остановить все звуки этого типа, если отключен звук.

Смежные вопросы