2016-06-15 3 views
2

Что я имеюGame Maker - Включение/выключение звука

У меня есть две комнаты: rm_home и rm_options. У меня есть звук: snd_Bgm. И у меня есть три объекта: obj_bgm, obj_BtnOnClicked и obj_BtnOffClicked.

То, что я хочу, очень просто

Игрок может включить/выключить в snd_Bgm.

То, что я сделал

В obj_bgm, у меня есть эти события:

Создать событие: набор вар global.sound to 1

Комната Начало: остановка звука snd_Bgm; если затем global.sound == 1 играть звук snd_Bgm

В obj_BtnOnClicked, у меня есть эти события:

левых прессованные события: играть звук snd_Bgm; Набор вар global.sound to 1

В obj_BtnOffClicked, у меня есть эти события:

левой прессованная Событие: стоп звук snd_Bgm; Набор вар global.sound to 0

Я поставил obj_BtnOnClicked и obj_BtnOffClicked в rm_options, которые могут быть доступны из rm_home. Затем я положил obj_bgm в rm_home.

Это проблема

При запуске игры, он будет показывать rm_home и играет snd_bgm. Я перехожу к rm_options, затем нажмите obj_BtnOffClicked, чтобы отключить звук, поэтому звук выключен. Но, когда я возвращаюсь к rm_home, звук снова включается.

То, что я думаю, что

Я не должен ставить Create Event: set var global.sound to 1 в obj_bgm, потому что, когда rm_home старт, он принимает значение вар global.sound из Создать событие. Но, если я положил Create Event в obj_BtnOnClicked или obj_BtnOffClicked, он показывает Get Error.

Что мне делать? Пожалуйста, объясните свой ответ. Благодарю.

ответ

1

Сохраняются ли ваши комнаты и ваши переменные?

Если rm_home не является постоянным, он будет перезагружаться каждый раз, когда вы его покинете. Поэтому каждый объект, помещенный в эту комнату, будет сброшен, включая obj_bgm, который устанавливает вашу звуковую переменную в 1. Я думаю, что это причина, по которой звук перезапускается, когда вы возвращаетесь к rm_home.

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

Если вы положили событие create в объект кнопки, оно не будет считано, пока вы не перейдете в комнату вариантов. Поэтому, когда obj_bgm пытается установить его в 1, он еще не существует. Я считаю, что это вызывает ошибку.

Я делаю эти замечания по предположениям, но мне нужно будет увидеть ваш код или сообщение об ошибке, чтобы помочь вам дальше.

+0

Нет, это не было настойчивым. Итак, как вы сказали, я проверяю постоянный параметр в 'obj_bgm', и он работает! Раньше я не знал о постоянном объекте. благодаря –

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