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;
DeathCause death_cause;
float time_left;
/**
* Met à jour les objets du jeu pour
* qu'ils s'adaptent au nouvel état
@ -83,6 +85,16 @@ public:
*/
void setMode(Mode set_mode);
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

View File

@ -37,8 +37,6 @@ private:
std::vector<sf::Vector2f> zone;
protected:
float time_left;
/**
* Dessine tous les objets et le fond à l'écran
*/
@ -106,7 +104,7 @@ public:
/**
* 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
@ -116,7 +114,7 @@ public:
/**
* 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

View File

@ -7,13 +7,6 @@
Game::Game(Manager& manager) : Level(manager),
widget_timer(manager, false),
next_frame_time(manager.getCurrentTime()) {
if (getMusic() != "") {
getResourceManager().playMusic(getMusic());
} else {
getResourceManager().stopMusic();
}
mode = Game::Mode::NORMAL;
death_cause = Game::DeathCause::NONE;
@ -248,6 +241,10 @@ Game::Mode Game::getMode() {
return mode;
}
void Game::setDeathCause(Game::DeathCause set_death_cause) {
death_cause = set_death_cause;
}
Game::DeathCause Game::getDeathCause() {
return death_cause;
}
@ -256,6 +253,19 @@ void Game::setMode(Game::Mode set_mode) {
mode = set_mode;
}
void Game::setDeathCause(Game::DeathCause set_death_cause) {
death_cause = set_death_cause;
void Game::setTotalTime(int set_total_time) {
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
std::getline(file, music, '\0');
std::getline(file, background, '\0');
std::cout << music << " " << background << std::endl;
// lecture des objets si une callback a été fournie
int object_count;
@ -155,9 +156,9 @@ Level::Level(Manager& manager) : State(manager) {
camera_angle = 180.f;
// métadonnées par défaut
name = sf::String("Nouveau niveau");
setName(sf::String("Nouveau niveau"));
current_path = getResourceManager().getLevelPath("new_level.dat");
time_left = total_time = 30;
setTotalTime(30);
// zone de jeu par défaut
zone.push_back(sf::Vector2f(-128, -128));
@ -166,8 +167,8 @@ Level::Level(Manager& manager) : State(manager) {
zone.push_back(sf::Vector2f(-128, 128));
// ressources par défaut
music = "";
background = "";
setMusic("");
setBackground("");
}
Level::~Level() {}
@ -190,7 +191,8 @@ void Level::load(std::string path) {
std::bind(&Level::addObject, this, std::placeholders::_1)
);
time_left = total_time;
setTotalTime(total_time);
setMusic(music);
current_path = path;
}
@ -324,9 +326,7 @@ void Level::setTotalTime(int set_total_time) {
// faisons rester le temps entre 10s et 59:59
set_total_time = std::min(set_total_time, 3599);
set_total_time = std::max(set_total_time, 10);
total_time = set_total_time;
time_left = total_time;
}
std::string Level::getMusic() const {