Trabajando en la muerte del jugador
This commit is contained in:
@@ -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()));
|
||||
}
|
||||
@@ -34,8 +34,8 @@ private:
|
||||
Debug *debug; // Objeto para gestionar la información de debug
|
||||
SDL_Texture *spriteLayer; // Textura para dibujar los sprites
|
||||
section_t section; // Seccion actual dentro del programa
|
||||
Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa
|
||||
Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa
|
||||
Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa
|
||||
Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa
|
||||
bool musicEnabled; // Indica si la musica puede sonar o no
|
||||
|
||||
// Actualiza el juego, las variables, comprueba la entrada, etc.
|
||||
@@ -68,6 +68,15 @@ private:
|
||||
// Recarga las texturas
|
||||
void reLoadTextures();
|
||||
|
||||
// Comprueba las colisiones del jugador con los enemigos
|
||||
bool checkPlayerEnemyCollisions();
|
||||
|
||||
// Comprueba si el jugador esta vivo
|
||||
void checkIfPlayerIsAlive();
|
||||
|
||||
// Mata al jugador
|
||||
void killPlayer();
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
Game(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input, Debug *debug);
|
||||
|
||||
@@ -525,4 +525,30 @@ SDL_Rect &Player::getCollider()
|
||||
// Comprueba los estados de vida
|
||||
void Player::checkLivingState()
|
||||
{
|
||||
switch (living)
|
||||
{
|
||||
case l_alive:
|
||||
break;
|
||||
|
||||
case l_dying:
|
||||
break;
|
||||
|
||||
case l_dead:
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Establece el estado de vida del jugador
|
||||
void Player::setLivingState(e_living value)
|
||||
{
|
||||
living = value;
|
||||
}
|
||||
|
||||
// Obtiene el estado de vida del jugador
|
||||
e_living Player::getLivingState()
|
||||
{
|
||||
return living;
|
||||
}
|
||||
@@ -142,6 +142,12 @@ public:
|
||||
|
||||
// Obtiene el rectangulo de colision del jugador
|
||||
SDL_Rect &getCollider();
|
||||
|
||||
// Establece el estado de vida del jugador
|
||||
void setLivingState(e_living value);
|
||||
|
||||
// Obtiene el estado de vida del jugador
|
||||
e_living getLivingState();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user