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 !