Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Problème de gestion des évenements  (Lu 4281 fois)

0 Membres et 1 Invité sur ce sujet

paolo10

  • Newbie
  • *
  • Messages: 28
    • Voir le profil
Problème de gestion des évenements
« 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 :
  • 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.

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re: Problème de gestion des évenements
« Réponse #1 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).

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Problème de gestion des évenements
« Réponse #2 le: Janvier 19, 2019, 01:13:20 pm »
Oui, c'est ça. Rien à voir avec SFML :)
Laurent Gomila - SFML developer

paolo10

  • Newbie
  • *
  • Messages: 28
    • Voir le profil
Re: Problème de gestion des évenements
« Réponse #3 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...
« Modifié: Janvier 19, 2019, 02:29:38 pm par paolo10 »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Problème de gestion des évenements
« Réponse #4 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.
Laurent Gomila - SFML developer

paolo10

  • Newbie
  • *
  • Messages: 28
    • Voir le profil
Re: Problème de gestion des évenements
« Réponse #5 le: Janvier 20, 2019, 11:12:35 am »
Merci pour votre aide !