1
Fenêtrage / [Résolu] Problème avec l'événement sf::Event::Closed
« le: Août 14, 2013, 06:16:45 pm »
Bonjour,
Voilà j'ai crée une classe qui s'occupe de la gestion des événements et celle-ci bug avec l'événement close.
Voici le code minimaliste:
Fichier EventManager.hpp
Fichier EventManager.cpp
Et le fichier main.cpp
Le problèm est le suivant:
Quand je lance l'application et que la souris est à l'extérieur de la fenêtre, tous va bien mais à partir du moment où la souris passe sur la fenêtre, même sans cliquer, la fenêtre se ferme.
Je ne comprend pas trop pourquoi cela ne marche pas, merci de m'éclairer
Voilà j'ai crée une classe qui s'occupe de la gestion des événements et celle-ci bug avec l'événement close.
Voici le code minimaliste:
Fichier EventManager.hpp
class EventManager
{
public:
EventManager();
virtual ~EventManager();
virtual void update(sf::RenderWindow& window);
/* Public Data */
bool close; // Est-ce que on demande à fermer la fenetre ?
protected:
sf::Event _event; // Contient les événements
};
{
public:
EventManager();
virtual ~EventManager();
virtual void update(sf::RenderWindow& window);
/* Public Data */
bool close; // Est-ce que on demande à fermer la fenetre ?
protected:
sf::Event _event; // Contient les événements
};
Fichier EventManager.cpp
EventManager::EventManager()
{
close=false;
}
EventManager::~EventManager()
{
}
void EventManager::update(sf::RenderWindow& window)
{
close=false;
while(window.pollEvent(_event))
{
switch(_event.type)
{
case sf::Event::Closed:
close=true;
break;
default:break;
}
}
}
{
close=false;
}
EventManager::~EventManager()
{
}
void EventManager::update(sf::RenderWindow& window)
{
close=false;
while(window.pollEvent(_event))
{
switch(_event.type)
{
case sf::Event::Closed:
close=true;
break;
default:break;
}
}
}
Et le fichier main.cpp
#include <iostream>
#include "EventManager.hpp"
int main()
{
sf::RenderWindow App;
EventManager event;
App.create(sf::VideoMode(800,600), "Test");
App.setFramerateLimit(60);
while(App.isOpen())
{
event.update(App);
if(event.close)
App.close();
App.clear(sf::Color::Black);
App.display();
}
return 0;
}
#include "EventManager.hpp"
int main()
{
sf::RenderWindow App;
EventManager event;
App.create(sf::VideoMode(800,600), "Test");
App.setFramerateLimit(60);
while(App.isOpen())
{
event.update(App);
if(event.close)
App.close();
App.clear(sf::Color::Black);
App.display();
}
return 0;
}
Le problèm est le suivant:
Quand je lance l'application et que la souris est à l'extérieur de la fenêtre, tous va bien mais à partir du moment où la souris passe sur la fenêtre, même sans cliquer, la fenêtre se ferme.
Je ne comprend pas trop pourquoi cela ne marche pas, merci de m'éclairer