【发布时间】:2019-08-30 19:53:45
【问题描述】:
假设我在 Tiled 的对象层中放置了一个对象。编写代码时应该如何将这些对象彼此分开? (示例:我们与硬币的主体相撞,不再需要主体)
【问题讨论】:
假设我在 Tiled 的对象层中放置了一个对象。编写代码时应该如何将这些对象彼此分开? (示例:我们与硬币的主体相撞,不再需要主体)
【问题讨论】:
对于平铺层,只需将单元格设置为空。
//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
【讨论】: