Bonsoir,
J'ai un petit soucis avec mon jeu, lorsque la fenêtre sfml n'as pas le focus ( le jeu est lancé en arrière plan et je suis sur une page internet), mes events se mettent quand même à jours (events clavier).
Mon programme contient un "EventManager", tout ce qu'il y a de plus simple : a chaque boucle, on met à jours tous les events clavier.
main.cpp
while(game->isRunning())
{
game->eventMgr->updateKeyboard();
game->eventMgr->updateMouse();
sf::Event event;
while(game->pollEvent(event))
{
if(event.type == sf::Event::Closed)
game->kill();
if (game->eventMgr->key.escape)
game->kill();
}
float elapsed = montre.getElapsedTime().asMilliseconds();
montre.restart();
world.update(elapsed);
game->clear(sf::Color(30,30,30));
world.draw();
game->display();
}
et dans l'eventManager:
void
EventManager::updateKeyboard()
{
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
key.left = true;
else
key.left = false;
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
key.right = true;
else
key.right =false;
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
key.up = true;
else
key.up = false;
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
key.down = true;
else
key.down = false;
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Z))
key.z = true;
else
key.z = false;
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Q))
key.q = true;
else
key.q = false;
//etc...
}
S'il y a besoin de plus d'informations, n'hésitez pas à me demander.
Merci pour votre aide!