首页 > 解决方案 > 有没有办法从平铺地图中删除对象?

问题描述

我正在遍历对象层,并且有某些对象(在我的情况下为矩形映射对象)我想根据某些条件删除,但我没有看到任何方法可以做到这一点。

标签: libgdxtiledtmxtiledmap

解决方案


您的用例有两种方法:

  • com.badlogic.gdx.maps.MapObjects#remove(com.badlogic.gdx.maps.MapObject)
  • com.badlogic.gdx.maps.MapObjects#remove(int)

请参阅https://libgdx.badlogicgames.com/ci/nightlies/docs/api/com/badlogic/gdx/maps/MapObjects.html

所以我猜你会做这样的事情:

            ArrayList<MapObject> objectsToRemove = new ArrayList<>();

            for (MapObject object : mapLayer.getObjects()) {
                if (object.getName().contains("removeMe")) // TODO
                {
                    objectsToRemove.add(object);
                }
            }
            for (MapObject mapObject : objectsToRemove) {
                mapLayer.getObjects().remove(mapObject);
            }

推荐阅读