我目前正在主菜单中使用一个按钮作为切换,将布尔值设置为true或false。它被初始化为true,如果设置为false,则不会播放声音。
然而,问题是如果你在主菜单中将切换设置为false并将屏幕切换为说,播放屏幕,然后再次返回主菜单,它会再次初始化为true,因为正在显示新屏幕使用
这有什么方法?
答案 0 :(得分:1)
您需要将设置的值存储在您始终保持的类实例的布尔字段中。按钮本身是一个视图对象 - 不要依赖它来存储你的状态。
例如,创建一个名为UserSettings的类,其中包含soundEnabled
布尔值。您的游戏实例可以保留对UserSettings实例的引用,以传递给所有不同的屏幕。初始化MenuScreen时,它会查看soundEnabled
布尔值并使用它来设置按钮的初始检查状态。该按钮有一个ChangeListener,可以适当地修改UserSettings对象中的布尔值。
然后在播放屏幕中传入相同的UserSettings对象,以及用于确定是否应该打开声音的内容。
此外,您可以使用Json类将UserSettings对象保存到文件(或首选项),然后您的游戏可以在重新打开游戏时加载文件中的一个(如果存在)。这样,用户就可以了。会议期间会记住偏好。