for (int y = startY; y <= endY; y++) {
for (int x = startX; x <= endX; x++) {
int xCell = (int) (x / tileWidth);
int yCell = (int) (y / tileHeight);
Cell cell = TiledMapManager.collisionLayer.getCell(xCell, yCell);
// Si es un bloque se añade para comprobar colisiones
if ((cell != null) && (cell.getTile().getProperties().containsKey(TiledMapManager.BLOCKED))) {
Rectangle rect = rectPool.obtain();
// El jugador está saltando (se choca con la cabeza en una celda)
if (velocity.y > 0)
rect.set(x, y, 1, 1);
// El jugador está cayendo (se posa en la celda que tenga debajo)
else
rect.set((int) (Math.ceil(x / tileWidth) * tileWidth), (int) (Math.ceil(y / tileHeight) * tileHeight), 0, 0);
tiles.add(rect);
if (velocity.y > 0)
if (cell.getTile().getProperties().containsKey(TiledMapManager.BOX)) {
// Sale el item de la caja
ResourceManager.getSound("sounds/item_appears.wav").play();
spriteManager.levelManager.raiseItem((int) (Math.ceil(x / tileWidth) * tileWidth),
(int) (Math.ceil(y / tileHeight) * tileHeight));
cell.setTile(TiledMapManager.getEmptyBox(spriteManager.levelManager.map));
}
}
// Si es una moneda, desaparece
else if ((cell != null) && (cell.getTile().getProperties().containsKey(TiledMapManager.COIN))) {
ResourceManager.getSound("sounds/coin.wav").play();
spriteManager.levelManager.removeCoin(xCell, yCell);
}
// Si es un enemigo pierde una vida
else if ((cell != null) && (cell.getTile().getProperties().containsKey(TiledMapManager.ENEMY))) {
if (!dead) {
die();
}
}
// Si es un cofre se abre y se termina la pantalla
else if ((cell != null) && (cell.getTile().getProperties().containsKey(TiledMapManager.CHEST))) {
if (!levelCleared) {
levelCleared = true;
spriteManager.music.stop();