我正在为游戏编写设置管理器。
基本上我正在显示该游戏的设置,只能通过控制台而不是通过游戏菜单来访问。
设置或命令具有不同的值。
例如:
dota_player_units_auto_attack
有一个布尔参数,0或1
而dota_health_per_vertical_marker
有一个整数参数(默认为250)
我应该如何处理/保存这些设置/命令?
我的第一个想法是使用HashMap,其中设置名称为键,bool作为值,但这不适用于整数部分。我应该只在Integer中定义值并检查1和0吗?
我希望将HashMap
与动态值结合使用。
欢呼声。
答案 0 :(得分:1)
我建议您使用XML
作为数据存储。
对于临时数据存储,您可以使用以下内容:
HashMap<String, TypeAndValuePare> = ...;
TypeAndValuePare
的位置:
class TypeAndValuePare {
int typeId;
Object value;
}
或者只需使用HashMap<String, Object>
按instanceof
检查类型。
答案 1 :(得分:1)
Java有一个Properties类,对于实现这样的设置非常有用。
答案 2 :(得分:0)
我建议将设置存储在单独的类中,如下所示。
public class SettingsManager{
private boolean dota_player_units_auto_attack;
private int dota_health_per_vertical_marker;
}
并让getters读取值和setter或构造函数参数来设置值。
答案 3 :(得分:0)
如果你想保持配置的简单结构,我的建议是你不应该将boolean
视为与整数不同的结构。每个配置都有自己的整数值,该应用程序应该正确响应。在您的情况下,如果变量dota_player_units_auto_attack
的值为1,则执行某些操作(如果不是)。然后没有。
查看用于其他配置属性的相同逻辑。这就是为什么如果你将实施一些创新,拥有这种文件的一致结构将在未来受益。
我认为基本规则KISS(Keep It Simple Stupid)在这里有最好的设备。
在你的问题中未来你可能有一个枚举,可能的选项提供应用程序应该使用的默认值,当不能获得任何其他。这肯定会提高您的代码可读性和可靠性。