2016-03-28 13:05:18 +00:00
|
|
|
#ifndef __PTF_GAME_HPP__
|
|
|
|
#define __PTF_GAME_HPP__
|
2016-03-04 15:29:31 +00:00
|
|
|
|
2016-04-03 19:05:27 +00:00
|
|
|
#include "level.hpp"
|
2016-04-05 23:13:00 +00:00
|
|
|
#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
|
|
|
*/
|
2016-04-03 19:05:27 +00:00
|
|
|
class Game : public Level {
|
2016-03-04 15:29:31 +00:00
|
|
|
private:
|
2016-04-06 13:21:46 +00:00
|
|
|
WidgetTimer widget_timer;
|
2016-04-03 18:19:48 +00:00
|
|
|
sf::Time next_frame_time;
|
2016-04-05 23:13:00 +00:00
|
|
|
bool test_mode;
|
|
|
|
std::shared_ptr<View> return_view;
|
2016-03-30 12:03:52 +00:00
|
|
|
|
2016-03-09 18:35:40 +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-09 18:35:40 +00:00
|
|
|
*/
|
2016-03-30 12:03:52 +00:00
|
|
|
void update();
|
2016-03-08 18:51:42 +00:00
|
|
|
|
2016-04-06 13:21:46 +00:00
|
|
|
protected:
|
|
|
|
/**
|
|
|
|
* Dessine tous les objets, le fond et
|
|
|
|
* l'interface de jeu
|
|
|
|
*/
|
|
|
|
virtual void draw();
|
|
|
|
|
2016-04-07 22:19:01 +00:00
|
|
|
/**
|
2016-04-08 00:35:17 +00:00
|
|
|
* Traite un événement
|
2016-04-07 22:19:01 +00:00
|
|
|
*/
|
2016-04-08 00:35:17 +00:00
|
|
|
virtual void processEvent(const sf::Event& event);
|
2016-04-07 22:19:01 +00:00
|
|
|
|
2016-04-08 22:26:47 +00:00
|
|
|
/**
|
|
|
|
* S'assure que la caméra est centrée sur les joueurs
|
|
|
|
*/
|
|
|
|
void ensureCentered();
|
|
|
|
|
2016-03-09 18:35:40 +00:00
|
|
|
public:
|
2016-03-30 12:03:52 +00:00
|
|
|
Game(Manager& manager);
|
2016-03-28 17:57:55 +00:00
|
|
|
virtual ~Game();
|
|
|
|
|
2016-04-05 18:07:58 +00:00
|
|
|
/**
|
2016-04-09 00:32:11 +00:00
|
|
|
* Appelé par le manager lorsque la vue commence à
|
|
|
|
* être utilisée
|
2016-04-05 18:07:58 +00:00
|
|
|
*/
|
2016-04-09 00:32:11 +00:00
|
|
|
virtual void begin();
|
2016-04-05 18:07:58 +00:00
|
|
|
|
2016-03-08 18:51:42 +00:00
|
|
|
/**
|
2016-04-08 00:35:17 +00:00
|
|
|
* Demande le passage à la frame suivante sur cette vue
|
2016-03-08 18:51:42 +00:00
|
|
|
*/
|
2016-04-09 00:32:11 +00:00
|
|
|
virtual void frame(const std::vector<sf::Event>& events);
|
2016-04-05 23:13:00 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Mise en mode test : l'appui sur espace renvoie
|
|
|
|
* vers l'éditeur donné
|
|
|
|
*/
|
|
|
|
void setTestMode(std::shared_ptr<View> set_return_view);
|
2016-03-04 15:29:31 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|