Correction de l'erreur de caméra initiale

This commit is contained in:
Mattéo Delabre 2016-04-10 20:34:29 +02:00
parent c9d61441e3
commit 91d19c2dfc
5 changed files with 16 additions and 14 deletions

View File

@ -15,7 +15,7 @@ private:
ResourceManager resource_manager;
sf::Clock clock;
sf::View default_view;
sf::View gui_view;
sf::String title;
std::shared_ptr<State> state;
@ -77,9 +77,10 @@ public:
ResourceManager& getResourceManager();
/**
* Remet la vue par défaut (zoom 1:1, origine en haut à gauche)
* Passage en vue de l'interface
* (coin en haut à gauche, zoom 1:1)
*/
void resetDefaultView();
void useGUIView();
/**
* Renvoie le titre actuel de la fenêtre

View File

@ -271,7 +271,7 @@ void Editor::draw() {
// on passe au dessin d'éléments d'interface.
// Changement de vue sur la vue par défaut
getManager().resetDefaultView();
getManager().useGUIView();
// dessin du rectangle de sélection
if (drag_mode == Editor::DragMode::SELECT_RECT) {

View File

@ -83,7 +83,7 @@ void Game::draw() {
// on passe au dessin d'éléments d'interface.
// Changement de vue sur la vue par défaut
getManager().resetDefaultView();
getManager().useGUIView();
// dessin du timer
widget_timer.setTimeLeft(getTotalTime());

View File

@ -4,8 +4,7 @@
const unsigned int Manager::FPS = 60;
const sf::Time Manager::FRAME_TIME = sf::seconds(1.f / Manager::FPS);
Manager::Manager() : default_view(window.getDefaultView()),
title(sf::String(L"")), state(NULL), next_state(NULL), running(false) {
Manager::Manager() : title(sf::String(L"")), state(NULL), next_state(NULL), running(false) {
// préchargement des textures
resource_manager.preload();
@ -15,6 +14,9 @@ title(sf::String(L"")), state(NULL), next_state(NULL), running(false) {
sf::VideoMode(704, 480), "Skizzle", sf::Style::Default,
sf::ContextSettings(0, 0, 2)
);
// récupération de la vue par défaut comme vue du gui
gui_view = window.getDefaultView();
}
void Manager::start() {
@ -44,7 +46,7 @@ void Manager::start() {
// redimensionnement de la vue par défaut
if (event.type == sf::Event::Resized) {
default_view = sf::View(sf::FloatRect(
gui_view = sf::View(sf::FloatRect(
0, 0, event.size.width, event.size.height
));
}
@ -84,8 +86,8 @@ ResourceManager& Manager::getResourceManager() {
return resource_manager;
}
void Manager::resetDefaultView() {
window.setView(default_view);
void Manager::useGUIView() {
window.setView(gui_view);
}
sf::String Manager::getTitle() {

View File

@ -1,6 +1,3 @@
////////////////////////
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! NE PAS COMMITTER AVEC CHGTS
#include "menu.hpp"
#include "editor.hpp"
#include "game.hpp"
@ -79,7 +76,7 @@ void Menu::frame() {
sf::Font font = getResourceManager().getFont("raleway.ttf");
// on s'assure d'être dans la vue par défaut (pas de zoom, 0x0 en haut gauche)
getManager().resetDefaultView();
getManager().useGUIView();
// dessin du fond
window.clear(sf::Color::White);
@ -184,6 +181,8 @@ void Menu::loadRules() {
void Menu::launchEditor() {
std::shared_ptr<Editor> editor = std::shared_ptr<Editor>(new Editor(getManager()));
// TODO: charger dynamiquement le niveau
editor->load("level1.dat");
getManager().setState(editor);
}