Bonjour,
Je réalise un petit jeux 2D de plateforme, par conséquent il me faut une gravité afin d’attirer le joueur vers le bas et pouvoir sauter (double saut). J'ai réussi à mettre en place c'est deux éléments mais il me reste un problème :
La gravité agit tant que le joueur ne touche pas un bloc.
Lorsque le joueur touche un bloc et appuie sur espace on fait sauter le personnage. J'ai créer deux fonctions de déplacement une pour l'axe de X et une pour l'axe des Y. Voici c'elle de l'axe des Y :
void moveImpulsionJump(float timeDelta, bool collision) {
move(0, acceleration);
if (timeJump.getElapsedTime().asMilliseconds() > 1) {
if (acceleration < 5 && collision == false) {
acceleration += getWheigth();
}
else if (collision == true) {
acceleration = 0;
}
timeJump.restart();
}
}
Du coup avec ce code pour faire sauter mon personnage il suffit de mettre accélération à une valeur négative lorsque le joueur appuie sur la bar espace.
Sauf que : quand le joueur est en collision avec un plateforme, on met l'accélération à 0 afin qu'il ne passe pas à travers mais du coup il ne peux plus sauter !
Je ne voit pas comment faire autrement. Merci de votre aide.