2

我正在为游戏编写设置管理器。

本质上,我正在显示只能通过控制台而不是通过游戏菜单访问的该游戏的设置。

设置或命令具有不同的值。

例如:

dota_player_units_auto_attack有一个布尔参数,0 或 1

whiledota_health_per_vertical_marker有一个整数参数(默认为 250)

我应该如何处理/保存这些设置/命令?

我的第一个想法是使用设置名称作为键和布尔值作为值的 HashMap,但这不适用于整数部分。我应该只在 Integer 中定义 value 并检查 1 和 0 吗?

我很想只使用HashMap动态值。

干杯。

4

4 回答 4

1

I would advise you to use XML as store of data. For temporary data store you cat use something like:

HashMap<String, TypeAndValuePare> = ...;

Where TypeAndValuePare is:

class TypeAndValuePare { int typeId; Object value; }

Or just use HashMap<String, Object> check the type by instanceof.

于 2012-10-07T17:50:20.440 回答
1

Java 有一个Properties类,它对于实现这样的设置非常有用。

于 2012-10-07T17:58:55.100 回答
0

我建议将设置存储在一个单独的类中,如下所示。

public class SettingsManager{

 private boolean dota_player_units_auto_attack;
 private int dota_health_per_vertical_marker;

}

并让 getter 读取值,并让 setter 或构造函数参数设置值。

于 2012-10-07T17:09:19.657 回答
0

如果您想为配置保持简单的结构,我的建议是您不应该将boolean其视为与整数不同的结构。每个配置都有自己的整数值,该应用程序应该正确响应。在您的情况下,如果变量dota_player_units_auto_attack的值为 1,则如果不是,则执行某些操作。然后没有。

请参阅用于其他配置属性的相同逻辑。这就是为什么如果您实施一些创新,拥有此类文件的一致结构将在未来受益。

我认为基本规则 KISS(保持简单愚蠢)在这里有它最好的应用。

在您的问题的未来,您可以有一个枚举,并提供一个可能的选项,该选项提供应用程序在无法获得任何其他值时应该使用的默认值。这肯定会增加您的代码可读性和可靠性。

于 2012-10-07T17:23:32.527 回答