Correction des messages de mort
This commit is contained in:
parent
44ae6475e3
commit
72e0e73956
|
@ -64,12 +64,6 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual void activate(Game& game, Object::Ptr object);
|
virtual void activate(Game& game, Object::Ptr object);
|
||||||
|
|
||||||
/**
|
|
||||||
* Appelé lorsque le bloc a été 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
|
* Récupère l'identifiant de type des blocs
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -86,12 +86,6 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual void draw(Level& level) = 0;
|
virtual void draw(Level& level) = 0;
|
||||||
|
|
||||||
/**
|
|
||||||
* Appelé lorsque l'objet a été 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
|
* Récupère l'identifiant de type de cet objet
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -59,12 +59,6 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual void activate(Game& game, Object::Ptr object);
|
virtual void activate(Game& game, Object::Ptr object);
|
||||||
|
|
||||||
/**
|
|
||||||
* Appelé lorsque le jouer a été 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
|
* Récupère l'identifiant de type des joueurs
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -81,10 +81,6 @@ void Block::activate(Game& game, Object::Ptr object) {
|
||||||
// aux activations
|
// aux activations
|
||||||
}
|
}
|
||||||
|
|
||||||
void Block::kill(Game& game) {
|
|
||||||
// rien à faire de plus si le bloc a été tué
|
|
||||||
}
|
|
||||||
|
|
||||||
sf::FloatRect Block::getAABB() const {
|
sf::FloatRect Block::getAABB() const {
|
||||||
sf::FloatRect transl_aabb = aabb;
|
sf::FloatRect transl_aabb = aabb;
|
||||||
transl_aabb.left += getPosition().x;
|
transl_aabb.left += getPosition().x;
|
||||||
|
|
15
src/game.cpp
15
src/game.cpp
|
@ -83,9 +83,6 @@ void Game::frame() {
|
||||||
std::cout << "<< Perdu : ";
|
std::cout << "<< Perdu : ";
|
||||||
|
|
||||||
switch (getDeathCause()) {
|
switch (getDeathCause()) {
|
||||||
case Game::DeathCause::NONE:
|
|
||||||
std::cout << "sans aucune raison";
|
|
||||||
break;
|
|
||||||
case Game::DeathCause::OUT_OF_BOUNDS:
|
case Game::DeathCause::OUT_OF_BOUNDS:
|
||||||
std::cout << "sortie du cadre";
|
std::cout << "sortie du cadre";
|
||||||
break;
|
break;
|
||||||
|
@ -95,9 +92,12 @@ void Game::frame() {
|
||||||
case Game::DeathCause::TIME_OUT:
|
case Game::DeathCause::TIME_OUT:
|
||||||
std::cout << "temps écoulé";
|
std::cout << "temps écoulé";
|
||||||
break;
|
break;
|
||||||
|
case Game::DeathCause::NONE:
|
||||||
|
std::cout << "sans aucune raison";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::cout << " !" << std::endl;
|
std::cout << " ! >>" << std::endl;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -185,6 +185,12 @@ void Game::update() {
|
||||||
// planifie sa mort à la prochaine frame
|
// planifie sa mort à la prochaine frame
|
||||||
if (!isInZone(obj_a) && obj_a->getMass() != 0) {
|
if (!isInZone(obj_a) && obj_a->getMass() != 0) {
|
||||||
kill(obj_a);
|
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
|
// on regarde s'il est en collision avec
|
||||||
|
@ -224,7 +230,6 @@ void Game::update() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Game::kill(Object::Ptr object) {
|
void Game::kill(Object::Ptr object) {
|
||||||
object->kill(*this);
|
|
||||||
pending_kill.push_back(object);
|
pending_kill.push_back(object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,8 @@ void KillBlock::activate(Game& game, Object::Ptr object) {
|
||||||
// si un joueur touche un bloc de mort, on le tue
|
// si un joueur touche un bloc de mort, on le tue
|
||||||
if (object->getTypeId() == Player::TYPE_ID) {
|
if (object->getTypeId() == Player::TYPE_ID) {
|
||||||
game.kill(object);
|
game.kill(object);
|
||||||
|
game.setMode(Game::Mode::LOST);
|
||||||
|
game.setDeathCause(Game::DeathCause::KILLED);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -98,10 +98,6 @@ void Player::activate(Game& game, Object::Ptr object) {
|
||||||
// qui s'occupe de la réponse
|
// qui s'occupe de la réponse
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::kill(Game& game) {
|
|
||||||
game.setMode(Game::Mode::LOST);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Player::updatePosition() {
|
void Player::updatePosition() {
|
||||||
// calcul de la différence de position pour connaître
|
// calcul de la différence de position pour connaître
|
||||||
// (approximativement) la rotation de la balle
|
// (approximativement) la rotation de la balle
|
||||||
|
|
Loading…
Reference in New Issue