Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Evotique

Pages: [1]
1
Général / Re : Faire sauter un personnage
« le: Décembre 07, 2013, 10:10:29 pm »
Ça fonctionne, merci !

2
Général / 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 !

Pages: [1]
anything