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-03-26 09:08:13 +00:00
|
|
|
#include <SFML/Audio.hpp>
|
2016-03-30 12:03:52 +00:00
|
|
|
#include <fstream>
|
|
|
|
#include <vector>
|
2016-03-28 15:23:47 +00:00
|
|
|
#include "view.hpp"
|
2016-03-08 18:51:42 +00:00
|
|
|
#include "object.hpp"
|
2016-03-28 15:23:47 +00:00
|
|
|
#include "manager.hpp"
|
2016-03-22 19:04:18 +00:00
|
|
|
#include "resource_manager.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-03-28 15:23:47 +00:00
|
|
|
class Game : public View {
|
2016-03-04 15:29:31 +00:00
|
|
|
private:
|
2016-03-30 12:03:52 +00:00
|
|
|
std::string level_name;
|
2016-03-30 20:13:29 +00:00
|
|
|
sf::Sprite background;
|
2016-03-22 19:04:18 +00:00
|
|
|
|
2016-04-03 18:19:48 +00:00
|
|
|
sf::Time next_frame_time;
|
2016-03-30 12:03:52 +00:00
|
|
|
|
|
|
|
std::vector<ObjectPtr> objects;
|
|
|
|
std::vector<std::pair<float, float>> level_zone;
|
2016-03-08 18:51:42 +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
|
|
|
|
|
|
|
/**
|
|
|
|
* Dessine la scène du jeu couche par couche
|
|
|
|
*/
|
2016-03-30 12:03:52 +00:00
|
|
|
void draw();
|
2016-03-08 18:51:42 +00:00
|
|
|
|
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();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Charge un niveau de jeu depuis le fichier donné
|
|
|
|
*/
|
2016-03-30 12:03:52 +00:00
|
|
|
void load(std::ifstream& file);
|
2016-03-28 17:57:55 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Sauvegarde la configuration actuelle comme un niveau
|
|
|
|
*/
|
|
|
|
void save();
|
|
|
|
|
2016-03-08 18:51:42 +00:00
|
|
|
/**
|
2016-03-28 15:23:47 +00:00
|
|
|
* Demande le passage à la frame suivante sur
|
|
|
|
* cette vue
|
2016-03-08 18:51:42 +00:00
|
|
|
*/
|
2016-03-30 12:03:52 +00:00
|
|
|
void frame();
|
2016-03-04 15:29:31 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|