diff --git a/include/kill_block.hpp b/include/kill_block.hpp index 1ca3177..7119d25 100644 --- a/include/kill_block.hpp +++ b/include/kill_block.hpp @@ -15,14 +15,6 @@ class KillBlock : public Block { public: typedef std::shared_ptr Ptr; -protected: - /** - * Initialisation des propriétés du bloc tueur donné - * depuis le fichier donné - */ - static void init(std::ifstream& file, Object::Ptr object); - -public: /** * Identifiant unique du type "bloc tueur" */ @@ -37,9 +29,9 @@ public: virtual Object::Ptr clone() const; /** - * Prépare les textures avant le dessin du bloc + * Dessine le bloc */ - virtual void prepareDraw(); + virtual void draw(Level& level); /** * Appelé lorsque le bloc tueur est activé par un objet @@ -60,6 +52,16 @@ public: * Sauvegarde le bloc tueur dans le fichier donné */ virtual void save(std::ofstream& file) const; + +private: + sf::Sprite icon_sprite; + +protected: + /** + * Initialisation des propriétés du bloc tueur donné + * depuis le fichier donné + */ + static void init(std::ifstream& file, Object::Ptr object); }; #endif diff --git a/res/textures/objects/kill_block.tga b/res/textures/objects/kill_block.tga index 010385d..59050cd 100644 Binary files a/res/textures/objects/kill_block.tga and b/res/textures/objects/kill_block.tga differ diff --git a/src/kill_block.cpp b/src/kill_block.cpp index 33945ea..711a87a 100644 --- a/src/kill_block.cpp +++ b/src/kill_block.cpp @@ -1,3 +1,4 @@ +#include "manager.hpp" #include "resource_manager.hpp" #include "kill_block.hpp" #include "game.hpp" @@ -5,16 +6,26 @@ const unsigned int KillBlock::TYPE_ID = 5; -KillBlock::KillBlock() : Block() {} +KillBlock::KillBlock() : Block() { + icon_sprite.setOrigin(sf::Vector2f(23, 23)); + icon_sprite.setTexture(*ResourceManager::get().getTexture( + "objects/kill_block.tga" + )); +} + KillBlock::~KillBlock() {} Object::Ptr KillBlock::clone() const { return Object::Ptr(new KillBlock(*this)); } -void KillBlock::prepareDraw() { - Block::prepareDraw(); - sprite.setTexture(*ResourceManager::get().getTexture("objects/kill_block.tga")); +void KillBlock::draw(Level& level) { + // on dessine le bloc normal + Block::draw(level); + + // on dessine l'icône + icon_sprite.setPosition(getPosition()); + level.getManager().getWindow().draw(icon_sprite); } void KillBlock::activate(Game& game, Object::Ptr object) {