Jeu plateforme/pb perso se déplace mal sur sol [résolu]

Bonjour, je suis en train de créer un jeu de plateforme 2d et j’ai pu, par des tests et quelques infos récupérées, créer un personnage qui se déplace à droite, à gauche et qui sait (à peut près) sauter.

Mon problème pour le moment est simple,mai je n’arrive pas à trouver une solution qui me convienne.
Je m’explique:

Mon problème est que je veux que mon perso se déplace sur le sol (qui sera donc fait d’objets disposés tout le long des niveaux), mais en testant et en regardant sur le forum je n’ai pas trouvé de solution qui me convienne.

J’ai essayé:

“arrêter l’objet” qui avait un effet prévisible et donc qui fige mon personnage sans pouvoir le déplacer par la suite.

“écarter un objet d’un autre” qui est le résultat le plus proche de ce que je souhaite obtenir, mais le personnage tremble et se déplace tout seul le long du sol.

Je viens juste de commencer ce jeu et me familiarise avec Game Develop comme je le peux, mais je ne suis pas assez à l’aise avec cet outils pour trouver une solution convenable.

J’espère que mon problème vous paraîtra clair et que vous pourrez m’apporter des éléments de réponses.

Cordialement,
Munditia.

Tu as deux solutions :

  • Soit tu utilise le moteur physique : c’est un automatismes que tu applique à des objets pour qu’ils réagissent comme dans la réalité (chute si l’objet est en l’air, rebondissement,…).
  • Soit tu simule une gravité comme dans l’exemple “Plateforme2”.

Daccord, merci je vais essayer tout ça et voir ce que cela donne.

Merci pour ton aide.

C’est une idée, je ne sais pas si c’est génial mais je te la donne et tu verras.
Pourquoi ne pas essayer de faire :
insérer : “Tant que” la touche gauche et droite sont appuyé ton personnage avance et tu mets une action pour faire arrêter l’objet si la condition que ces touche ne sont pas appuyé est rempli

Je vais essayer ton idée, mais j’ai des doutes sur le bon fonctionnement de ta technique car cela marcherait si je n’avait pas mis de gravité.
Mais puisqu’il y en a, mon perso ne risque-t-il pas de chuter à travers le sol dès que je le ferai avancer après qu’il se soit arrêté ?

Je dois avouer que je n’ai rien compris au système des variables qui est utilisé. C’est une notion que j’ai toujours eu du mal à assimiler… :frowning:

Merci pour votre aide.

Utilise alors le moteur physique, c’est ultra-simple d’utilisation et c’est très bien pour faire un jeu de plateformes.
Pour appliquer l’automatisme “Physics” à un objet : clic-droit sur l’objet ==> Automatismes ==> Physics
Et après l’avoir ajouté, tu peux modifier les valeurs physiques (masse, élasticité, friction,…).

C’est simple, une variable est comme un tiroir avec un étiquette. L’étiquette est le nom que tu donnes à la variable. Et cette variable peut, comme un tiroir, contenir quelque chose : dans GD, c’est soit un nombre, soit du texte.
Dans les conditions, on peut tester le contenu des variables. Dans les actions, on peut affecter un contenu à une variable (on peut également l’additionner, le soustraire, le multiplier… au contenu déjà présent).
Ensuite, à la place de taper un nombre dans n’importe quel action, tu peux remplacer ce nombre par le nombre contenu dans une variable : Variable(NOMDETAVARIABLE) ou VariableString(NOMDETAVARIABLE) si c’est un texte dans la variable.

Je pense qu’elle (il ?) sait ce qu’est une variable, mais ne comprend pas à quoi servent les variables de l’exemple.

C’est “il” :slight_smile: . Oui voila, ce que je ne comprends pas c’est le “cheminement” des variables de l’exemple. Comment sont-elles utilisés, dans quel ordre etc… je n’arrive pas même à savoir à quel moment telle ou telle variable est déclarée…

Mais je suppose qu’il faut que j’approfondisse ma lecture de l’aide de GD !

Mais ceci va gérer automatiquement les collisions entre objets ?

Oui, il suffit de mettre l’automatisme à tous les objets, même le sol. Pour les objets qui doivent rester immobiles (le sol), il faut mettre l’automatisme en mode statique (clic droit sur l’objet dans l’éditeur d’objet à droite de l’écran > automatismes > physics).

Dans le même endroit, tu peux paramétrer le vecteur de gravité, je te conseille de le mettre à 0;9.
(tu n’as pas besoin de configurer ce paramètre dans tous les objets, il est global à toute la scène).

Merci, je l’avais déjà fait fonctionner avec une valeur de 0.5, mais 0,9 est pas mal du tout, j’ajusterai tout ça une fois l’animation pour le saut bien créée, pour que le saut paraisse crédible.

J’en viens à un second problème qui doit venir des conditions que j’ai mis en place pour mon saut.

En résumé: Si je reste appuyé sur “flèche haut” mon saut s’exécute en boucle et donc la force du déplacement se démultiplie…
Je pense que des variables entrent justement en compte pour cette action, mais vu que je ne suis pas très fort…

Je ne demande pas la solution toute posée (quoi que… :unamused: ), mais au moins une piste afin de me familiariser avec les variables, si elles entrent en compte pour mon problème.

Encore merci pour vos réponses, cela m’a bien aidé. En les essayant toutes j’ai pu me rendre compte des possibilités plutôt vastes du programme. Et je sais que dès lors que l’on maîtrise les variables tout devient possible, j’ai hâte !