Correction bug musique

This commit is contained in:
Mattéo Delabre 2016-04-11 23:07:05 +02:00
parent 138289460c
commit 4f99da42e3
4 changed files with 40 additions and 20 deletions

View File

@ -29,6 +29,8 @@ private:
Mode mode; Mode mode;
DeathCause death_cause; DeathCause death_cause;
float time_left;
/** /**
* Met à jour les objets du jeu pour * Met à jour les objets du jeu pour
* qu'ils s'adaptent au nouvel état * qu'ils s'adaptent au nouvel état
@ -83,6 +85,16 @@ public:
*/ */
void setMode(Mode set_mode); void setMode(Mode set_mode);
void setDeathCause(DeathCause set_death_cause); void setDeathCause(DeathCause set_death_cause);
/**
* Modifie le temps total du niveau
*/
virtual void setTotalTime(int set_total_time);
/**
* Modifie la musique du niveau
*/
virtual void setMusic(std::string set_music);
}; };
#endif #endif

View File

@ -37,8 +37,6 @@ private:
std::vector<sf::Vector2f> zone; std::vector<sf::Vector2f> zone;
protected: protected:
float time_left;
/** /**
* Dessine tous les objets et le fond à l'écran * Dessine tous les objets et le fond à l'écran
*/ */
@ -106,7 +104,7 @@ public:
/** /**
* Modifie le temps total du niveau * Modifie le temps total du niveau
*/ */
void setTotalTime(int set_total_time); virtual void setTotalTime(int set_total_time);
/** /**
* Récupère la musique du niveau * Récupère la musique du niveau
@ -116,7 +114,7 @@ public:
/** /**
* Modifie la musique du niveau * Modifie la musique du niveau
*/ */
void setMusic(std::string set_music); virtual void setMusic(std::string set_music);
/** /**
* Récupère le fond du niveau * Récupère le fond du niveau

View File

@ -7,13 +7,6 @@
Game::Game(Manager& manager) : Level(manager), Game::Game(Manager& manager) : Level(manager),
widget_timer(manager, false), widget_timer(manager, false),
next_frame_time(manager.getCurrentTime()) { next_frame_time(manager.getCurrentTime()) {
if (getMusic() != "") {
getResourceManager().playMusic(getMusic());
} else {
getResourceManager().stopMusic();
}
mode = Game::Mode::NORMAL; mode = Game::Mode::NORMAL;
death_cause = Game::DeathCause::NONE; death_cause = Game::DeathCause::NONE;
@ -248,6 +241,10 @@ Game::Mode Game::getMode() {
return mode; return mode;
} }
void Game::setDeathCause(Game::DeathCause set_death_cause) {
death_cause = set_death_cause;
}
Game::DeathCause Game::getDeathCause() { Game::DeathCause Game::getDeathCause() {
return death_cause; return death_cause;
} }
@ -256,6 +253,19 @@ void Game::setMode(Game::Mode set_mode) {
mode = set_mode; mode = set_mode;
} }
void Game::setDeathCause(Game::DeathCause set_death_cause) { void Game::setTotalTime(int set_total_time) {
death_cause = set_death_cause; Level::setTotalTime(set_total_time);
time_left = getTotalTime();
}
void Game::setMusic(std::string set_music) {
Level::setMusic(set_music);
// lorsqu'on change la musique, on commence à la jouer
// si toutefois il y en a une
if (getMusic() != "") {
getResourceManager().playMusic(getMusic());
} else {
getResourceManager().stopMusic();
}
} }

View File

@ -116,6 +116,7 @@ void loadLevel(
// lecture des chemins de la musique et du fond // lecture des chemins de la musique et du fond
std::getline(file, music, '\0'); std::getline(file, music, '\0');
std::getline(file, background, '\0'); std::getline(file, background, '\0');
std::cout << music << " " << background << std::endl;
// lecture des objets si une callback a été fournie // lecture des objets si une callback a été fournie
int object_count; int object_count;
@ -155,9 +156,9 @@ Level::Level(Manager& manager) : State(manager) {
camera_angle = 180.f; camera_angle = 180.f;
// métadonnées par défaut // métadonnées par défaut
name = sf::String("Nouveau niveau"); setName(sf::String("Nouveau niveau"));
current_path = getResourceManager().getLevelPath("new_level.dat"); current_path = getResourceManager().getLevelPath("new_level.dat");
time_left = total_time = 30; setTotalTime(30);
// zone de jeu par défaut // zone de jeu par défaut
zone.push_back(sf::Vector2f(-128, -128)); zone.push_back(sf::Vector2f(-128, -128));
@ -166,8 +167,8 @@ Level::Level(Manager& manager) : State(manager) {
zone.push_back(sf::Vector2f(-128, 128)); zone.push_back(sf::Vector2f(-128, 128));
// ressources par défaut // ressources par défaut
music = ""; setMusic("");
background = ""; setBackground("");
} }
Level::~Level() {} Level::~Level() {}
@ -190,7 +191,8 @@ void Level::load(std::string path) {
std::bind(&Level::addObject, this, std::placeholders::_1) std::bind(&Level::addObject, this, std::placeholders::_1)
); );
time_left = total_time; setTotalTime(total_time);
setMusic(music);
current_path = path; current_path = path;
} }
@ -324,9 +326,7 @@ void Level::setTotalTime(int set_total_time) {
// faisons rester le temps entre 10s et 59:59 // faisons rester le temps entre 10s et 59:59
set_total_time = std::min(set_total_time, 3599); set_total_time = std::min(set_total_time, 3599);
set_total_time = std::max(set_total_time, 10); set_total_time = std::max(set_total_time, 10);
total_time = set_total_time; total_time = set_total_time;
time_left = total_time;
} }
std::string Level::getMusic() const { std::string Level::getMusic() const {