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

Auteur Sujet: Gravité et Saut  (Lu 1478 fois)

0 Membres et 1 Invité sur ce sujet

loustak

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Gravité et Saut
« le: Février 17, 2015, 09:00:34 am »
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.

kimci86

  • Full Member
  • ***
  • Messages: 124
    • Voir le profil
Re : Gravité et Saut
« Réponse #1 le: Février 17, 2015, 11:52:59 am »
La façon dont fonctionne le mouvement du personnage n'est pas très claire avec le code que tu as mis.
Cependant je crois que tu pourrais faire sauter ton personnage en lui donnant une vitesse verticale lors d'un saut.

Sinon, quel est l'intérêt de ton timeJump ?

Autre remarque : tu mélanges accélération et force, ce qui est une horreur pour un physicien. Ces deux grandeurs n'ont pas la même unité (on dit qu'elle ne sont pas homogènes) donc leur somme n'a pas de sens physique.
De plus, des corps de masses différentes et donc de poids différents ne tomberaient pas à la même vitesse, ce qui est bizarre si il n'y a pas d'autres forces que le poids. En l'occurrence, tu devrais ajouter l'accélération de la pesanteur (le fameux g de l'ordre de 10 m/s sur Terre) et non le poids à ton accélération.