Метод объекта LibGdx MapProperties containsKey всегда возвращает false - PullRequest
0 голосов
/ 27 декабря 2018

Я изучаю фреймворк LibGdx, использую редактор карт Tiled для создания и класс TiledMap с TmxMapLoader () для чтения данных карты .tmx, но метод класса MapProperties containsKey не выполнен в операторе if

Я пыталсясохранить загрузку файла tmx Tiled Editor, интересно, что я правильно понял 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
   }

ожидалось истинно внутри, если, но всегда ложно,

РЕДАКТИРОВАТЬ: я добавил описание метода, может быть, я что-то неправильно понял https://libgdx.badlogicgames.com/ci/nightlies/docs/api/com/badlogic/gdx/maps/MapProperties.html#containsKey-java.lang.String-

1 Ответ

0 голосов
/ 27 декабря 2018

Редактор карт листов сохранен проблема ( вставка набора плиток в файл tmx ), код Java в порядке.Немного информации, если у кого-то возникли проблемы с tileSets.

  • Расширение файла MAP редактора карты плиток * .tmx
  • Расширение файла tileSet редактора карты плиток * .tsx

Никогда не сохраняйте с помощью набора встраиваемых плиток, вы должны хранить отдельные файлы tmx и tsx

...