Trabajando en la muerte del jugador
This commit is contained in:
@@ -95,11 +95,9 @@ void Game::update()
|
|||||||
map->update();
|
map->update();
|
||||||
enemyEngine->update();
|
enemyEngine->update();
|
||||||
player->update();
|
player->update();
|
||||||
if (enemyEngine->checkEnemyCollision(player->getCollider()))
|
|
||||||
{
|
|
||||||
debug->add("COLLISION");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
checkPlayerEnemyCollisions();
|
||||||
|
checkIfPlayerIsAlive();
|
||||||
checkScreenBorders();
|
checkScreenBorders();
|
||||||
|
|
||||||
updateDebugInfo();
|
updateDebugInfo();
|
||||||
@@ -197,6 +195,8 @@ void Game::checkEventHandler()
|
|||||||
map = new Map(asset->get("01.map"), renderer, asset, itemTracker);
|
map = new Map(asset->get("01.map"), renderer, asset, itemTracker);
|
||||||
delete player;
|
delete player;
|
||||||
player = new Player(renderer, asset, input, map, debug, &board.diamonds);
|
player = new Player(renderer, asset, input, map, debug, &board.diamonds);
|
||||||
|
delete enemyEngine;
|
||||||
|
enemyEngine = new EnemyEngine(renderer, asset, player, map, asset->get(map->getEnemyFile()));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_SCANCODE_F:
|
case SDL_SCANCODE_F:
|
||||||
@@ -310,4 +310,51 @@ void Game::reLoadTextures()
|
|||||||
map->reLoadTextures();
|
map->reLoadTextures();
|
||||||
player->reLoadTextures();
|
player->reLoadTextures();
|
||||||
scoreboard->reLoadTexture();
|
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
|
Debug *debug; // Objeto para gestionar la información de debug
|
||||||
SDL_Texture *spriteLayer; // Textura para dibujar los sprites
|
SDL_Texture *spriteLayer; // Textura para dibujar los sprites
|
||||||
section_t section; // Seccion actual dentro del programa
|
section_t section; // Seccion actual dentro del programa
|
||||||
Uint32 ticks; // Contador de ticks para ajustar la velocidad 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 ticksSpeed; // Velocidad a la que se repiten los bucles del programa
|
||||||
bool musicEnabled; // Indica si la musica puede sonar o no
|
bool musicEnabled; // Indica si la musica puede sonar o no
|
||||||
|
|
||||||
// Actualiza el juego, las variables, comprueba la entrada, etc.
|
// Actualiza el juego, las variables, comprueba la entrada, etc.
|
||||||
@@ -68,6 +68,15 @@ private:
|
|||||||
// Recarga las texturas
|
// Recarga las texturas
|
||||||
void reLoadTextures();
|
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:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
Game(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input, Debug *debug);
|
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
|
// Comprueba los estados de vida
|
||||||
void Player::checkLivingState()
|
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
|
// Obtiene el rectangulo de colision del jugador
|
||||||
SDL_Rect &getCollider();
|
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
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user