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

Auteur Sujet: Faire sauter un personnage  (Lu 3830 fois)

0 Membres et 1 Invité sur ce sujet

Evotique

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Faire sauter un personnage
« 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 !

yhu420

  • Jr. Member
  • **
  • Messages: 75
    • Voir le profil
    • E-mail
Re : Faire sauter un personnage
« Réponse #1 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...

Reycan

  • Newbie
  • *
  • Messages: 49
    • Voir le profil
Re : Faire sauter un personnage
« Réponse #2 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


Evotique

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Re : Faire sauter un personnage
« Réponse #3 le: Décembre 07, 2013, 10:10:29 pm »
Ça fonctionne, merci !