Sauvegarde des events pour sous-traitement des vues
This commit is contained in:
parent
388decc3b6
commit
462656e99a
|
@ -15,7 +15,7 @@ private:
|
|||
sf::Clock clock;
|
||||
|
||||
ResourceManager resource_manager;
|
||||
std::array<bool, sf::Keyboard::KeyCount> keys;
|
||||
std::vector<sf::Event> events;
|
||||
|
||||
std::shared_ptr<View> view;
|
||||
|
||||
|
@ -47,6 +47,12 @@ public:
|
|||
*/
|
||||
ResourceManager& getResourceManager();
|
||||
|
||||
/**
|
||||
* Renvoie la liste des événements reçus pour la
|
||||
* précédente frame
|
||||
*/
|
||||
const std::vector<sf::Event>& getEvents();
|
||||
|
||||
/**
|
||||
* Renvoie un booléen attestant de l'appui sur la
|
||||
* touche donnée ou non
|
||||
|
|
|
@ -3,13 +3,12 @@
|
|||
Manager::Manager() : window(
|
||||
sf::VideoMode(704, 480), "Projet CMI", sf::Style::Default,
|
||||
sf::ContextSettings(0, 0, 2)
|
||||
), view(NULL) {
|
||||
keys.fill(false);
|
||||
}
|
||||
), view(NULL) {}
|
||||
|
||||
void Manager::start() {
|
||||
while (window.isOpen()) {
|
||||
sf::Event event;
|
||||
events.clear();
|
||||
|
||||
// traitement des évènements reçus
|
||||
while (window.pollEvent(event)) {
|
||||
|
@ -19,21 +18,14 @@ void Manager::start() {
|
|||
return;
|
||||
}
|
||||
|
||||
// suivi de l'enfoncement et du relâchement des touches
|
||||
if (event.type == sf::Event::KeyPressed) {
|
||||
keys[event.key.code] = true;
|
||||
}
|
||||
|
||||
if (event.type == sf::Event::KeyReleased) {
|
||||
keys[event.key.code] = false;
|
||||
}
|
||||
|
||||
// lorsque la fenêtre est redimensionnée par l'utilisateur
|
||||
if (event.type == sf::Event::Resized) {
|
||||
// mise à jour de la caméra en fonction de la taille de la fenêtre
|
||||
sf::FloatRect visibleArea(0, 0, event.size.width, event.size.height);
|
||||
window.setView(sf::View(visibleArea));
|
||||
}
|
||||
|
||||
events.push_back(event);
|
||||
}
|
||||
|
||||
// demande à la vue de se mettre à jour sur
|
||||
|
@ -62,6 +54,10 @@ ResourceManager& Manager::getResourceManager() {
|
|||
return resource_manager;
|
||||
}
|
||||
|
||||
bool Manager::isKeyPressed(sf::Keyboard::Key key) const {
|
||||
return keys[key];
|
||||
const std::vector<sf::Event>& Manager::getEvents() {
|
||||
return events;
|
||||
}
|
||||
|
||||
bool Manager::isKeyPressed(sf::Keyboard::Key key) const {
|
||||
return sf::Keyboard::isKeyPressed(key) && window.hasFocus();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue