Implémentation initiale de l'éditeur

This commit is contained in:
Mattéo Delabre 2016-04-03 22:08:11 +02:00
parent 6baf647cd7
commit 388decc3b6
4 changed files with 49 additions and 10 deletions

22
include/editor.hpp Normal file
View File

@ -0,0 +1,22 @@
#ifndef __PTF_GAME_HPP__
#define __PTF_GAME_HPP__
#include "level.hpp"
/**
* La classe Editor permet l'édition de
* niveaux du jeu
*/
class Editor : public Level {
public:
Editor(Manager& manager);
virtual ~Editor();
/**
* Demande le passage à la frame suivante sur
* cette vue
*/
void frame();
};
#endif

15
src/editor.cpp Normal file
View File

@ -0,0 +1,15 @@
#include "editor.hpp"
#include "constants.hpp"
Editor::Editor(Manager& manager) : Level(manager) {
// activation de la synchronisation verticale
// car, dans l'éditeur, nous n'avons besoin que de dessiner
// (pas de mise à jour physique)
manager.getWindow().setVerticalSyncEnabled(true);
}
Editor::~Editor() {}
void Editor::frame() {
draw();
}

View File

@ -1,8 +1,14 @@
#include "game.hpp"
#include "constants.hpp"
Game::Game(Manager& manager) : Level(manager),
next_frame_time(manager.getCurrentTime()) {}
Game::Game(Manager& manager) : Level(manager), next_frame_time(manager.getCurrentTime()) {
// on s'assure que la synchronisation verticale soit
// bien désactivée : on s'occupe de la limitation du
// framerate manuellement dans la fonction frame pour mettre
// une mise à jour fluide de la physique du jeu
manager.getWindow().setVerticalSyncEnabled(false);
}
Game::~Game() {}
void Game::frame() {

View File

@ -1,25 +1,21 @@
#include "player.hpp"
#include "block.hpp"
#include "manager.hpp"
#include "game.hpp"
#include "constants.hpp"
#include <cstdlib>
#include "editor.hpp"
#include <iostream>
#include <memory>
#include <fstream>
int main() {
Manager manager;
std::shared_ptr<Game> game = std::shared_ptr<Game>(new Game(manager));
std::shared_ptr<Editor> editor = std::shared_ptr<Editor>(new Editor(manager));
try {
// ouverture du niveau
std::ifstream file;
file.open("./levels/level1.dat", std::ios::binary | std::ios::in);
game->load(file);
editor->load(file);
file.close();
manager.setView(game);
manager.setView(editor);
manager.start();
} catch (const std::exception& exception) {
std::cerr << "Le programme a quitté après une erreur d'exécution." << std::endl;