LibGdx MapProperties对象方法containsKey始终返回false

时间:2018-12-27 03:33:09

标签: java libgdx

我正在研究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-

1 个答案:

答案 0 :(得分:0)

Tile Map Editor保存问题(在tmx文件中嵌入 tileset ),Java代码很好。 如果有人对tileSets遇到问题,可以了解一些信息。

  • 瓦片地图编辑器的MAP文件扩展名为* .tmx
  • 瓦片地图编辑器的tileSet文件扩展名为* .tsx

永远不要保存嵌入磁贴集,而应保留单独的tmx和tsx文件