From 41547c1e921498beede05297b387d888fcbe2090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matt=C3=A9o=20Delabre?= Date: Mon, 11 Apr 2016 21:20:05 +0200 Subject: [PATCH] Correction d'un bug d'initialisation du temps --- include/game.hpp | 2 -- include/level.hpp | 3 +++ src/game.cpp | 3 +-- src/level.cpp | 5 ++++- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/include/game.hpp b/include/game.hpp index b01bed2..2f432fc 100644 --- a/include/game.hpp +++ b/include/game.hpp @@ -25,8 +25,6 @@ private: sf::Time next_frame_time; std::vector pending_kill; - float time_left; - std::shared_ptr return_state; Mode mode; DeathCause death_cause; diff --git a/include/level.hpp b/include/level.hpp index e9733a2..6c6ae3e 100644 --- a/include/level.hpp +++ b/include/level.hpp @@ -25,6 +25,7 @@ private: sf::String name; std::string current_path; + int total_time; sf::Sprite background_sprite; @@ -36,6 +37,8 @@ private: std::vector zone; protected: + float time_left; + /** * Dessine tous les objets et le fond à l'écran */ diff --git a/src/game.cpp b/src/game.cpp index 4215831..e05adb0 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -17,7 +17,6 @@ Game::Game(Manager& manager) : Level(manager), mode = Game::Mode::NORMAL; death_cause = Game::DeathCause::NONE; - time_left = getTotalTime(); getWindow().setFramerateLimit(0); } @@ -118,7 +117,7 @@ void Game::draw() { // dessin du timer widget_timer.setTimeLeft( - std::max(std::floor(time_left), 0.f) + std::max(std::ceil(time_left), 0.f) ); widget_timer.draw(sf::Vector2f(window_size.x / 2 - 50, 0)); diff --git a/src/level.cpp b/src/level.cpp index 87cbc69..5b20d3a 100644 --- a/src/level.cpp +++ b/src/level.cpp @@ -170,7 +170,7 @@ sf::String Level::getLevelName(std::string path) { void Level::load() { // métadonnées par défaut name = sf::String("Nouveau niveau"); - total_time = 30; + time_left = total_time = 30; // zone de jeu par défaut zone.clear(); @@ -200,6 +200,8 @@ void Level::load(std::string path) { zone, background, music, std::bind(&Level::addObject, this, std::placeholders::_1) ); + + time_left = total_time; current_path = path; } @@ -335,6 +337,7 @@ void Level::setTotalTime(int set_total_time) { set_total_time = std::max(set_total_time, 10); total_time = set_total_time; + time_left = total_time; } std::string Level::getMusic() const {