From 0ea9479a2a893aaf8e28a6c0b93efcf9df13230c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matt=C3=A9o=20Delabre?= Date: Tue, 8 Mar 2016 19:48:42 +0100 Subject: [PATCH] Ajout des fonctions update() et getLayer() sur Object MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tous les objets sont susceptibles d'être mis à jour La fonction getLayer() permet d'obtenir la couche d'affichage de l'objet --- object.hpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/object.hpp b/object.hpp index 02f721d..34c6199 100644 --- a/object.hpp +++ b/object.hpp @@ -3,6 +3,7 @@ #include #include +#include "state.hpp" class Object { protected: @@ -15,6 +16,17 @@ public: */ virtual void draw(sf::RenderWindow& window) = 0; + /** + * Met à jour l'objet juste avant le dessin d'une frame + * Reçoit l'état du moteur et le temps écoulé depuis la dernière frame + */ + virtual void update(State state) = 0; + + /** + * Détermine la couche d'affichage de l'objet + */ + virtual unsigned int getLayer() = 0; + /** * Récupère la position de l'objet */ @@ -26,4 +38,15 @@ public: int getCharge(); }; +/** + * Classe de comparaison des couches deux objets + * Renvoie "true" si le premier objet est sur une couche + * qui doit être dessinée avant celle du second + */ +struct CompareObjectLayer { + bool operator()(Object const &obj1, Object const &obj2) { + return obj1.getLayer() < obj2.getLayer(); + } +}; + #endif