Forum de la communauté SFML

Aide => Général => Discussion démarrée par: Evotique le Novembre 30, 2013, 09:57:02 pm

Titre: Faire sauter un personnage
Posté par: Evotique le Novembre 30, 2013, 09:57:02 pm
Salut !

J'ai commencé à crée un jeu de plateforme 2D, pour le moment je n'ai pas de moteur physique. Je souhaiterai faire sauter mon personnage mais je ne vois pas comment faire. J'ai seulement réussi à animer mon personnage :/

Le déplacement est géré par la classe Personnage :
void Personnage::right()
{
    setPosition(getPosition().x + 3, getPosition().y);
    if(m_direction != 0)
    {
        setScale(1, 1);
        setPosition(getPosition().x - 73, getPosition().y);
        m_direction = 0;
    }
}

void Personnage::left()
{
    setPosition(getPosition().x - 3, getPosition().y);
    if(m_direction != 1)
    {
        setScale(-1, 1);
        setPosition(getPosition().x + 73, getPosition().y);
        m_direction = 1;
    }
}

Main.cpp
int main()
{
    sf::RenderWindow window(sf::VideoMode(800, 608), "");
        window.setFramerateLimit(60);

    Personnage personnage;

    personnage.setPosition(200.f, 200);
    personnage.setPosition(50, 400);

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


        if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
        {
            personnage.right();
            personnage.play();
        }

        else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
        {
            personnage.left();
            personnage.play();
        }

        else
        {
            personnage.stop();
        }


        window.clear(sf::Color(80, 80, 80));

        window.draw(personnage);

        window.display();
    }

    return 0;
}
 

Je voudrais que le personnage saute avec une inertie : au début du saut rapide puis progressivement moins rapide jusqu’à retomber.

J'ai cherché du côté de la classe personnage mais si je pars dans une boucle, je ne vois pas le déplacement. J'ai cherché aussi du côté du main mais ce que j'ai trouvé ne me convient pas. Pouvez-vous m'aider ?

PS : Si mon code n'est pas "adapté", j'accepte volontiers les critiques !

Par avance, merci !
Titre: Re : Faire sauter un personnage
Posté par: yhu420 le Décembre 07, 2013, 11:20:35 am
Ca m'est jamais arrivé jusque la de devoir faire ca, mais perso je pense que tu devrais utiliser la fonction sinus..
Eh oui faut quand meme faire des maths...
Titre: Re : Faire sauter un personnage
Posté par: Reycan le Décembre 07, 2013, 07:02:43 pm
J'ai déjà été confronté à cet exercice, voici un tuto qui explique assez bien 3 techniques différentes :
http://fr.openclassrooms.com/informatique/cours/les-sauts-2d-en-c

Titre: Re : Faire sauter un personnage
Posté par: Evotique le Décembre 07, 2013, 10:10:29 pm
Ça fonctionne, merci !