这是我用来获取Tile单元格的代码,所以我可以删除它。
public TiledMapTileLayer.Cell getCell(){
TiledMapTileLayer layer = (TiledMapTileLayer)map.getLayers().get(1);
return layer.getCell((int)(body.getPosition().x * Constants.PPM / 32),
(int)(body.getPosition().y * Constants.PPM / 32));
}
问题是我的Bo2dWorld中有一枚硬币,大小为2x2。
如果我调用此方法,它只会删除硬币平铺的右上角单元格...但我想删除硬币的所有4个单元格。 有谁知道怎么做?
答案 0 :(得分:0)
硬币是2x2瓷砖大而你只能在你的getCell()
中返回那些瓷砖一种选择是在Tiled中将属性添加到硬币图块。称之为“CoinTileCorner”。然后调用4个牌“TopLeft”,“TopRight”,“BottomLeft”和“BottomRight”。
现在,当您从getCell返回一个单元格时,您可以检查该属性并知道要删除哪些其他图块。
private void removeCoin(cell){
String corner = cell.getTile().getProperties().get("CoinTileCorner");
if(corner.equals("TopLeft")){
//remove this cell, the cell to the right, below and the one bellow on the right.
else if(corner.equals("TopRight")){
//remove this cell, the one to the left... and so on and so forth.
}
}