Forum de la communauté SFML

Aide => Général => Discussion démarrée par: paolo10 le Janvier 19, 2019, 11:39:25 am

Titre: Problème de gestion des évenements
Posté par: paolo10 le Janvier 19, 2019, 11:39:25 am
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 :

Auriez vous une idée d'où cela peut provenir ?
En vous remerciant d'avance.
Bonne journée.
Titre: Re: Problème de gestion des évenements
Posté par: G. le Janvier 19, 2019, 01:00:58 pm
Salut, je crois que ça vient du clavier, certains claviers ne gèrent pas l'appui simultané sur 3 touches ou plus (suivant les touches).
Titre: Re: Problème de gestion des évenements
Posté par: Laurent le Janvier 19, 2019, 01:13:20 pm
Oui, c'est ça. Rien à voir avec SFML :)
Titre: Re: Problème de gestion des évenements
Posté par: paolo10 le Janvier 19, 2019, 01:58:51 pm
Ah d'accord ! Merci beaucoup pour vos réponses, Auriez vous une idée de comment contourner ce problème ou bien ce n'est tout simplement pas possible ?
Parce que pour l'appui simultanée Left+Right en effet ce n'est pas gênant mais ça m'embête que mon personnage ne puisse pas aller en haut à gauche et tirer simultanément par exemple...
Titre: Re: Problème de gestion des évenements
Posté par: Laurent le Janvier 19, 2019, 05:55:43 pm
C'est physique, le clavier n'envoie pas de signal pour la troisième touche dans les cas problématiques (tu peux tester avec un éditeur de texte ou n'importe quoi d'autre si veux une preuve concrète). La seule solution est donc d'éviter les combinaisons foireuses -- qui sont heureusement plus ou moins les mêmes sur tous les claviers.
Titre: Re: Problème de gestion des évenements
Posté par: paolo10 le Janvier 20, 2019, 11:12:35 am
Merci pour votre aide !