Partage
  • Partager sur Facebook
  • Partager sur Twitter

Faire sauter un personnage

SFML 2.5

    8 décembre 2019 à 17:07:54

    Bonjour à tous !

    J'essaye actuellement de coder un petit jeu vidéo... Donc j'ai réussi à coder les déplacements à droite et gauche, la gravité, mais j'ai un problème pour faire sauter mon personnage...

    La seul chose que j'arrive à faire pour ce problème c'est la même technique que les déplacements à droite et gauche... Le problème c'est que du coup si on reste appuyé sur la barre espace le personnage vole mais ne retombe jamais...

    Si vous avez une petite technique pour que même en restant appuyé sur la touche, le personnage saute et retombe au sol  avant de pouvoir ressauter...

    Voici mon code :

    déplacement droite gauche :

    void Personnage::reagirEvent(){
        droite = sf::Keyboard::isKeyPressed(sf::Keyboard::D);
        gauche = sf::Keyboard::isKeyPressed(sf::Keyboard::Q);
        saut = sf::Keyboard::isKeyPressed(sf::Keyboard::Space);
    }
    
    void Personnage::actualiser(float temps){
        Personnage::reagirEvent();
        if(droite){
            vitesse += {ACCELERATION * temps, 0};
        }else if(gauche){
            vitesse += {-(ACCELERATION * temps), 0};
        }else if(saut){
            //Personnage::saute(temps);
        }
        vitesse.x -= vitesse.x * FROTTEMENT * temps;
    
        rectangle.move(vitesse.x * temps, vitesse.y);
    
    }


    et mon code actuelle pour sauter :

    void Personnage::saute(float temps){
        vitesse.y -= vitesse.y + PUISSANCE_SAUT * temps;
    }

    Je vous remercie de votre aide si vous avez des questions ce sera un plaisir pour moi de vous répondre !

    MagretsDeCanard.

    • Partager sur Facebook
    • Partager sur Twitter
      8 décembre 2019 à 17:28:55

      Salut, souvent on maintient une variable "etat" pour le personnage, avec entre autre comme valeur "au sol" ou "en l'air"

      Tu codes ça comme tu veux, mais en gros, si tu appuies sur la touche de saut et que l'état est au sol, alors tu mets l'état en l'air, tu donnes une vitesse.

      Et quand il retouche le sol, tu remets à  l'état au sol. Bien evidemment, le déclenchement du saut n'est possible qu'à l'état "au sol"

      • Partager sur Facebook
      • Partager sur Twitter

      Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

      Faire sauter un personnage

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown