skizzle/include/game.hpp

63 lines
1.2 KiB
C++
Raw Normal View History

2016-03-28 13:05:18 +00:00
#ifndef __PTF_GAME_HPP__
#define __PTF_GAME_HPP__
2016-03-04 15:29:31 +00:00
#include "level.hpp"
#include "editor.hpp"
2016-03-04 15:29:31 +00:00
/**
2016-03-28 13:05:18 +00:00
* La classe Game gère l'affichage et les objets
* d'une partie de jeu
2016-03-04 15:29:31 +00:00
*/
class Game : public Level {
2016-03-04 15:29:31 +00:00
private:
WidgetTimer widget_timer;
sf::Time next_frame_time;
bool test_mode;
std::shared_ptr<State> return_state;
2016-03-30 12:03:52 +00:00
/**
* Met à jour les objets du jeu pour
2016-03-28 13:05:18 +00:00
* qu'ils s'adaptent au nouvel état
*/
2016-03-30 12:03:52 +00:00
void update();
protected:
/**
* Dessine tous les objets, le fond et
* l'interface de jeu
*/
virtual void draw();
/**
* Traite un événement
*/
virtual void processEvent(const sf::Event& event);
/**
* S'assure que la caméra est centrée sur les joueurs
*/
void ensureCentered();
public:
2016-03-30 12:03:52 +00:00
Game(Manager& manager);
2016-03-28 17:57:55 +00:00
virtual ~Game();
/**
* Appelé par le manager lorsque le jeu commence
*/
2016-04-09 00:32:11 +00:00
virtual void begin();
/**
* Demande le passage à la frame suivante du jeu
*/
2016-04-09 00:32:11 +00:00
virtual void frame(const std::vector<sf::Event>& events);
/**
* Mise en mode test : l'appui sur espace renvoie
* vers l'éditeur donné
*/
void setTestMode(std::shared_ptr<State> set_return_state);
2016-03-04 15:29:31 +00:00
};
#endif