你如何在libgdx中正确实现声音切换?

时间:2016-04-20 16:42:58

标签: java audio libgdx

我目前正在主菜单中使用一个按钮作为切换,将布尔值设置为true或false。它被初始化为true,如果设置为false,则不会播放声音。

然而,问题是如果你在主菜单中将切换设置为false并将屏幕切换为说,播放屏幕,然后再次返回主菜单,它会再次初始化为true,因为正在显示新屏幕使用

这有什么方法?

1 个答案:

答案 0 :(得分:1)

您需要将设置的值存储在您始终保持的类实例的布尔字段中。按钮本身是一个视图对象 - 不要依赖它来存储你的状态。

例如,创建一个名为UserSettings的类,其中包含soundEnabled布尔值。您的游戏实例可以保留对UserSettings实例的引用,以传递给所有不同的屏幕。初始化MenuScreen时,它会查看soundEnabled布尔值并使用它来设置按钮的初始检查状态。该按钮有一个ChangeListener,可以适当地修改UserSettings对象中的布尔值。

然后在播放屏幕中传入相同的UserSettings对象,以及用于确定是否应该打开声音的内容。

此外,您可以使用Json类将UserSettings对象保存到文件(或首选项),然后您的游戏可以在重新打开游戏时加载文件中的一个(如果存在)。这样,用户就可以了。会议期间会记住偏好。