首页 > 解决方案 > 如何从平铺中删除对象?

问题描述

假设我在 Tiled 的对象层中放置了一个对象。编写代码时应该如何将这些对象彼此分开?(示例:我们与硬币的主体相撞,不再需要主体)

标签: libgdxtiled

解决方案


对于平铺层,只需将单元格设置为空。

   //Rectangle tmp = new Rectangle();
   if (colideTileLayer.getCell(ix, iy) != null) {
      tmp.set(ix * tileWidth, iy * tileHeight, tileWidth, tileHeight);
      if (tmp.overlaps(rectangle)) {
        colideTileLayer.setCell(ix, iy, null); //THIS IS LINE
        GameManager.INSTANCE.incResult();
        result = true;
      }
    }

如果您的障碍物在对象层中定义并在图块层中以视觉方式表示,则根据对象位置重新计算需要擦除的图块。

比从对象层移除对象,使用 remove 方法。

//MapObjects objects = layer.getObjects(); //you read if from object layer
//MapObject object = getColidedObject(); //you need to know what to remove 
objects.remove(object); //remove

推荐阅读