从地图上移除胸部以便不再收集胸部是可能的,但不能编辑TMX地图。为了达到这个目的,每当玩家走过一个胸部时(通过向胸部添加属性如胸部=真,然后检查它),除了奖励玩家,你必须做一些事情,这是使用共享首选项的胸部已经被使用了一个字符串集合(例如,用“钥匙箱”)并且包含坐标,用“:”分隔。要保存坐标:
String saveMe = tileRow + ":" + tileColumn;
removeChest(tileRow, tileColumn);
要加载的坐标:
String loaded = loadString();
String[] coords = loades.split(":");
tileRow = Integer.parseInt(coords[0]);
tileColumn = Integer.parseInt(coords[1]);
removeChest(tileRow, tileColumn);
现在您可以保存/载入用箱子。这是每当玩家走到它具有(胸=真)属性瓷砖:
boolean found = false;
for (int i = 0; i < chestsUsedTileRowsArray.length; i++) {
if (chestFoundTileRow == chestsUsedTileRowsArray[i] && chestFoundTileColumn == chestsUsedTileColumnsArray[i]) {
found = true;
break;
}
}
if (!found) {
rewardPlayer();
saveChestUsed(tileRow, tileColumn);
}
最后,还有removeChest()
这需要一个小窍门:绘制这对胸部地面的纹理精灵:
void removeChest(int tileRow, int tileColumn) {
final TMXTile tileToReplace = tmxMap.getTMXLayers().get(0).getTMXTile(tileColumn, tileRow);
final int w = tileToReplace.getTileWidth();
final int h = tileToReplace.getTileHeight();
Sprite sprite = new Sprite(w * (tileColumn + 0.5), h * (tileRow + 0.5), textureRegionOfGround, this.getVertexBufferObjectManager());
scene.addChild(sprite);
}