2016-06-15 42 views
2

游戏制造商 - 打开/关闭声音

我有两个房间:rm_homerm_options。我有一个声音:snd_Bgm。而且,我有三个对象:obj_bgmobj_BtnOnClickedobj_BtnOffClicked

我要的是很简单的

玩家可以开启/关闭snd_Bgm

我做了什么

obj_bgm,我有这些事件:

创建活动:集VAR global.sound to 1

房开始:停止声音snd_Bgm;如果global.sound == 1然后播放声音snd_Bgm

obj_BtnOnClicked,我有这些事件:

左键按下事件:播放声音snd_Bgm;集VAR global.sound to 1

obj_BtnOffClicked,我有这些事件:

左键按下事件:停止声音snd_Bgm;集VAR global.sound to 0

我把obj_BtnOnClicked,并且obj_BtnOffClickedrm_options,这可以从rm_home访问。然后,我把obj_bgm放在rm_home

这是问题

当游戏开始时,它会显示rm_home并播放snd_bgm。我去rm_options,然后点击obj_BtnOffClicked关闭声音,所以声音关闭。但是,当我回到rm_home时,声音再次出现。

我觉得

我不应该把Create Event: set var global.sound to 1obj_bgm,因为当rm_home开始,它从VAR global.sound的价值创建活动。但是,如果我将创建事件写入obj_BtnOnClickedobj_BtnOffClicked,则会显示获取错误

我该怎么办?请解释你的答案。谢谢。

回答

1

你的房间和你的变量是持久的吗?

如果rm_home不是持久的,每次离开时都会重新启动。因此,放置在该房间中的每个对象都将被重置,包括obj_bgm,它将您的声音变量设置为1.我认为这是当您返回rm_home时声音重新启动的原因。

如果你仍然想重置房间,但不是这个特定的对象,你可以使它持久。你可以通过勾选对象中的方框或通过代码来完成。

如果您将创建事件放入按钮对象中,则只有在进入选项空间时才会读取它。所以当obj_bgm试图将它设置为1时,它还不存在。我相信它会导致错误。

我假设这些言论,但我需要看到您的代码或您的错误消息,以帮助您进一步。

+0

不,它不是持久的。所以,正如你所说的,我检查'obj_bgm'中的持久选项,它可以工作!我不知道以前的持久对象。谢谢 –