Bonjour, mon problème est assez simple, je n'arrive pas à gérer l'appui simultané sur certaines touches :
J'ai réduit le code de mon jeu au minimum pour cerner le problème :
#include <SFML/Graphics.hpp>
#include <iostream>
int main()
{
// Create the main window
sf::RenderWindow app(sf::VideoMode(800, 600), "SFML window");
app.setKeyRepeatEnabled(false);
// Start the game loop
while (app.isOpen())
{
// Process events
sf::Event event;
while (app.pollEvent(event))
{
// Close window : exit
if (event.type == sf::Event::Closed)
app.close();
else if (event.type == sf::Event::KeyPressed) {
if(event.key.code == sf::Keyboard::Left) {
std::cout << "LEFT" << std::endl;
}
else if(event.key.code == sf::Keyboard::Right) {
std::cout << "RIGHT" << std::endl;
}
else if(event.key.code == sf::Keyboard::Up) {
std::cout << "UP" << std::endl;
}
else if(event.key.code == sf::Keyboard::Down) {
std::cout << "DOWN" << std::endl;
}
if(event.key.code == sf::Keyboard::Space) {
std::cout << "SHOOT" << std::endl;
}
}
}
}
return EXIT_SUCCESS;
}
Cela me donne :
- Quand j'appuie (sans relâcher de touche) sur Right puis Up puis Left : Premier screen (tout se passe bien)
- Quand j'appuie (sans relâcher de touche) sur Right puis Down puis Left : Deuxieme screen (L'appui sur la troisieme touche n'est pas pris en compte).
- Quand j'appuie (sans relâcher de touche) sur Right puis Up puis Space : Troisième screen (tout se passe bien)
- Quand j'appuie (sans relâcher de touche) sur Left puis Up puis Space : Quatrième screen (L'appui sur la troisième touche n'est pas pris en compte)
Auriez vous une idée d'où cela peut provenir ?
En vous remerciant d'avance.
Bonne journée.