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

Auteur Sujet: Délai avant changement de touche  (Lu 1322 fois)

0 Membres et 1 Invité sur ce sujet

cChaD

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
Délai avant changement de touche
« le: Septembre 01, 2014, 03:14:24 pm »
Bonjour,

je souhaite déplacer un petit carré, j'y arrive bien sauf que lorsque je change de touche en plein déplacement, je constate une petit délai avant que mon carré se déplace à nouveau.

Voici le code :

    // Boucle
    while (window.isOpen())
    {
        sf::Time elapsedTime = clock.restart();

        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
            {
                window.close();
            }

            if(!isKeyPressed || keyPressed == LEFT)
            {
                if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
                {
                    rect.move(-RECT_SPEED*elapsedTime.asMilliseconds(), 0);
                    isKeyPressed = true;
                    keyPressed = LEFT;
                }
            }

            if(!isKeyPressed || keyPressed == RIGHT)
            {
                if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
                {
                    rect.move(RECT_SPEED*elapsedTime.asMilliseconds(), 0);
                    isKeyPressed = true;
                    keyPressed = RIGHT;
                }
            }

            if(!isKeyPressed || keyPressed == UP)
            {
                if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
                {
                    rect.move(0, -RECT_SPEED*elapsedTime.asMilliseconds());
                    isKeyPressed = true;
                    keyPressed = UP;
                }
            }

            if(!isKeyPressed || keyPressed == DOWN)
            {
                if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
                {
                    rect.move(0, RECT_SPEED*elapsedTime.asMilliseconds());
                    isKeyPressed = true;
                    keyPressed = DOWN;
                }
            }

            if(event.type == sf::Event::KeyReleased)
                isKeyPressed = false;
        }

        window.clear(sf::Color(0,162,255));
        window.draw(rect);
        window.display();
    }

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Délai avant changement de touche
« Réponse #1 le: Septembre 01, 2014, 03:26:12 pm »
Ce code n'a rien à faire dans la boucle d'évènements. Ca aurait dû te sauter aux yeux, car il n'utilise pas d'évènement... ;)
Laurent Gomila - SFML developer

cChaD

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
Re : Délai avant changement de touche
« Réponse #2 le: Septembre 01, 2014, 04:06:13 pm »
Quel c*n !!!!

Merci laurent et désole du dérangement.

 

anything