Correction des messages de mort

This commit is contained in:
Mattéo Delabre 2016-04-11 20:01:41 +02:00
parent 44ae6475e3
commit 72e0e73956
7 changed files with 12 additions and 31 deletions

View File

@ -64,12 +64,6 @@ public:
*/
virtual void activate(Game& game, Object::Ptr object);
/**
* Appelé lorsque le bloc a é tué. Si cette fonction
* est appelé, le bloc sera supprimé à la frame suivante
*/
virtual void kill(Game& game);
/**
* Récupère l'identifiant de type des blocs
*/

View File

@ -86,12 +86,6 @@ public:
*/
virtual void draw(Level& level) = 0;
/**
* Appelé lorsque l'objet a é tué. Si cette fonction
* est appelé, l'objet sera supprimé à la frame suivante
*/
virtual void kill(Game& game) = 0;
/**
* Récupère l'identifiant de type de cet objet
*/

View File

@ -59,12 +59,6 @@ public:
*/
virtual void activate(Game& game, Object::Ptr object);
/**
* Appelé lorsque le jouer a é tué. Si cette fonction
* est appelé, le joueur sera supprimé à la frame suivante
*/
virtual void kill(Game& game);
/**
* Récupère l'identifiant de type des joueurs
*/

View File

@ -81,10 +81,6 @@ void Block::activate(Game& game, Object::Ptr object) {
// aux activations
}
void Block::kill(Game& game) {
// rien à faire de plus si le bloc a été tué
}
sf::FloatRect Block::getAABB() const {
sf::FloatRect transl_aabb = aabb;
transl_aabb.left += getPosition().x;

View File

@ -83,9 +83,6 @@ void Game::frame() {
std::cout << "<< Perdu : ";
switch (getDeathCause()) {
case Game::DeathCause::NONE:
std::cout << "sans aucune raison";
break;
case Game::DeathCause::OUT_OF_BOUNDS:
std::cout << "sortie du cadre";
break;
@ -95,9 +92,12 @@ void Game::frame() {
case Game::DeathCause::TIME_OUT:
std::cout << "temps écoulé";
break;
case Game::DeathCause::NONE:
std::cout << "sans aucune raison";
break;
}
std::cout << " !" << std::endl;
std::cout << " ! >>" << std::endl;
break;
}
}
@ -185,6 +185,12 @@ void Game::update() {
// planifie sa mort à la prochaine frame
if (!isInZone(obj_a) && obj_a->getMass() != 0) {
kill(obj_a);
// si c'était un joueur, on a perdu
if (obj_a->getTypeId() == Player::TYPE_ID) {
setMode(Game::Mode::LOST);
setDeathCause(Game::DeathCause::OUT_OF_BOUNDS);
}
}
// on regarde s'il est en collision avec
@ -224,7 +230,6 @@ void Game::update() {
}
void Game::kill(Object::Ptr object) {
object->kill(*this);
pending_kill.push_back(object);
}

View File

@ -22,6 +22,8 @@ void KillBlock::activate(Game& game, Object::Ptr object) {
// si un joueur touche un bloc de mort, on le tue
if (object->getTypeId() == Player::TYPE_ID) {
game.kill(object);
game.setMode(Game::Mode::LOST);
game.setDeathCause(Game::DeathCause::KILLED);
}
}

View File

@ -98,10 +98,6 @@ void Player::activate(Game& game, Object::Ptr object) {
// qui s'occupe de la réponse
}
void Player::kill(Game& game) {
game.setMode(Game::Mode::LOST);
}
void Player::updatePosition() {
// calcul de la différence de position pour connaître
// (approximativement) la rotation de la balle