Trabajando en la muerte del jugador

This commit is contained in:
2022-09-23 21:06:21 +02:00
parent 4cf09d1535
commit e18db352e0
4 changed files with 94 additions and 6 deletions

View File

@@ -95,11 +95,9 @@ void Game::update()
map->update();
enemyEngine->update();
player->update();
if (enemyEngine->checkEnemyCollision(player->getCollider()))
{
debug->add("COLLISION");
}
checkPlayerEnemyCollisions();
checkIfPlayerIsAlive();
checkScreenBorders();
updateDebugInfo();
@@ -197,6 +195,8 @@ void Game::checkEventHandler()
map = new Map(asset->get("01.map"), renderer, asset, itemTracker);
delete player;
player = new Player(renderer, asset, input, map, debug, &board.diamonds);
delete enemyEngine;
enemyEngine = new EnemyEngine(renderer, asset, player, map, asset->get(map->getEnemyFile()));
break;
case SDL_SCANCODE_F:
@@ -310,4 +310,51 @@ void Game::reLoadTextures()
map->reLoadTextures();
player->reLoadTextures();
scoreboard->reLoadTexture();
}
// Comprueba las colisiones del jugador con los enemigos
bool Game::checkPlayerEnemyCollisions()
{
if (enemyEngine->checkEnemyCollision(player->getCollider()))
{
debug->add("COLLISION");
player->setLivingState(l_dead);
return true;
}
return false;
}
// Comprueba si el jugador esta vivo
void Game::checkIfPlayerIsAlive()
{
if (player->getLivingState() == l_dead)
{
killPlayer();
}
}
// Mata al jugador
void Game::killPlayer()
{
// if (player->getInvincible())
//{
// return;
// }
board.lives--;
// Destruye el mapa, el jugador y los enemigos
//delete map;
delete player;
//delete enemyEngine;
// Sonido
// JA_PlaySound(deathSound);
// setBlackScreen();
// Crea el nuevo mapa, el nuevo jugador y nuevos enemigos
//map = new Map(asset->get("01.map"), renderer, asset, itemTracker);
player = new Player(renderer, asset, input, map, debug, &board.diamonds);
//enemyEngine = new EnemyEngine(renderer, asset, player, map, asset->get(map->getEnemyFile()));
}