0

我正在尝试为我自己的小型 2D RPG 创建自定义地图格式,所以我的问题是如何正确灵活地管理阅读和创建自定义地图格式。首先,我正在用 Java 编写代码。这个想法是有一个名为“TileMap”的类。此类定义了一个二维整数数组,其中存储了我的所有实体(我正在使用实体系统来实现我的游戏)。我还想在实际读取过程发生之前保存和解析一些关于地图大小的信息。地图文件应如下所示:

#This is a test map
width=4
height=3
layercount=1
tilesize=32
[1;0;0;0]
[23;1;0;0]
[5;0;1;0]

其中 layercount 是 z 维度提供的层数。并且tilesize是每个tile的大小,以像素为单位。实体在括号之间定义。模式是:[entity_id;x_pos;y_pos;z_pos]。我已经编写了代码来解析这样的文件,但它不是很灵活,因为你只需在方括号前放一个小空格,地图就无法加载。我只需要一些有用的技巧就可以灵活地做到这一点。有人可以帮帮我吗?

4

1 回答 1

0

我认为可能有 3 种不同的方法来解决这个问题:
首先,您可以将 Map 与 Maps 一起使用:Map<Serializable,Map<String,Object>>其中 Serializable 是您的 entity_id,而地图是您需要的属性,例如 ("width",4), ("height ",3):

public static final String WIDTH = "WIDTH";
public static final String HEIGHT = "HEIGHT";

...

Map<String,Object> mapProperties = new HashMap<String,Object>();
mapProperties.put(WIDTH, 4);
mapProperties.put(HEIGHT, 3);

……

Map<Serializable,Map<String,Object>> map = new  HashMap<Serializable,Map<String,Object>>();
map.put(myEntity.getId(), mapProperties);

第二种方式可能是这样的:http: //java.dzone.com/articles/hashmap-%E2%80%93-single-key-and
第三种方式可能是这样的:Java Tuple without Creating Multiple Type Parameters

于 2015-05-16T13:03:30.857 回答