как включать/выключать музыку и звуковые эффекты во всем приложении из любой точки COCOS2D?

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

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


person maniclorn    schedule 04.07.2012    source источник
comment
Сделайте этот параметр в NSUserDefaults или поместите глобальную переменную в AppDelegate и проверьте это на каждом уровне.   -  person Sumanth    schedule 04.07.2012
comment
@Sumanth использовал глобальную переменную. Спасибо   -  person maniclorn    schedule 04.07.2012


Ответы (1)


Если вы используете CocosDenshion для воспроизведения музыки, вы можете просто позвонить

[[SimpleAudioEngine sharedEngine] setBackgroundMusicVolume: value];
[[SimpleAudioEngine sharedEngine] setEffectsVolume: value];

значение является плавающим в диапазоне 0..1

person Morion    schedule 04.07.2012
comment
Я нашел решение. Использование глобальной переменной в AppDelegate. Теперь в любое время я могу установить значение YES или NO и вызвать эти методы. - person maniclorn; 04.07.2012
comment
есть ли способ отключить их отдельно? - person OMGPOP; 09.03.2013
comment
что вы имеете в виду под раздельно? Я размещаю две строки кода в качестве примера. один отключает фоновую музыку, второй для эффектов. если вы хотите изменить громкость для одного эффекта, взгляните на класс CDSoundSource CocosDenshion. - person Morion; 10.03.2013
comment
Не могу понять, что вы имеете в виду. Я дал ответ на вопрос о маниклорн. Он принял это, так что мы можем видеть, что этот путь был хорош для него. Если вы хотите узнать что-то еще, создайте другую тему или попробуйте найти существующую. Хотя бы взгляните на класс, который я упомянул в комментариях к вашему сообщению. - person Morion; 19.03.2013