我正在研究LibGdx框架,使用Tiled地图编辑器创建地图,并使用TiledMap类和TmxMapLoader()读取地图的.tmx数据,但是MapProperties类的方法containsKey在if语句中失败
我尝试保存加载tmx文件的平铺编辑器,这很有趣 MapObjects getCount()正确。
TiledMap map;
//...
map = new TmxMapLoader().load("maps/32/level0.tmx");
//...
MapLayer layer = map.getLayers().get(2);
MapObjects objects = layer.getObjects();
System.out.println(objects.getCount());
// objects.getCount() returns 2 or 3 when i change items via editor
MapObject object = objects.get(0);
// Entity entity; // omitted for testing
MapProperties prop = object.getProperties();
if (prop.containsKey("type")){
// ignored (always false) , i got 2 objects both with property
// type 1 and type 2
int i = prop.get("type", int.class);
System.out.println(i);
// entity = Entity.GetValue(i); // omitted for testing
// System.out.println(entity); // omitted for testing
// the goal is to store tile object types in Entity enum
}
如果if期望为true,但始终为false
编辑:我添加了方法描述,也许我误解了一些东西 https://libgdx.badlogicgames.com/ci/nightlies/docs/api/com/badlogic/gdx/maps/MapProperties.html#containsKey-java.lang.String-
答案 0 :(得分:0)
Tile Map Editor保存问题(在tmx文件中嵌入 tileset ),Java代码很好。 如果有人对tileSets遇到问题,可以了解一些信息。
永远不要保存嵌入磁贴集,而应保留单独的tmx和tsx文件