Bonjour
Je suis actuellement en train d'essayer de faire un moteur physique 2D afin de réaliser un mario-like. Pour cela j' aimerai votre avis sur ma façon de procéder et également vous poser quelques questions. J'espère que vous me comprendrez en tous cas (j'ai peur de tous mélanger dans ce que je vais raconter).
=> Gestion de la gravité.
C'est le premier point où j' aimerai bien votre avis. Voilà, supposons que j'ai un objet Box. A cet objet j'ai deux vecteurs.
Un vecteur ACCELERATION.
Un vecteur VITESSE.
La composante Y du vecteur ACCELERATION a comme valeur: -9.81
À chaque tour de boucle, je mets à jours les coordonnées de Box de cette façon:
VITESSE.y = VITESSE.y + ACCELERATION.y
Y = Y + VITESSE.y
Pour soumettre un objet à la gravité, est-ce une bonne façon ?
=> Detection du sol
Alors là j'ai un peu plus de mal. Parceque je trouve que ma méthode fait un peu bidouillage...
Voilà comment je procède à chaque tour de boucle:
VITESSE.y = VITESSE.y + ACCELERATION.y
// Si la boîte passe à travers le sol...
SI( ObtenirPixel(Box.x, Box.y - VITESSE.y) = NOIR)
| i = DISTANCE Box-Sol
| Box.y = Box.y - i
SINON
| Box.y = Box.y - VITESSE.y
Donc en fait, je regarde à chaque tour de boucle si une fois que mes coordonnées seront mise à jour, si la boîte ne sera pas passé à travers le sol à cause d'une trop grosse valeur de VITESSE.y
Cette méthode marche. Mais pas par exemple si j'ai une plateforme dans les air qui a une hauteur de 10 pixels. La boîte passera à travers. Donc je suppose que ma méthode fait trop bricolage non ? Comment procéderiez-vous de votre côtés ?
=> Une fois au sol
Une fois au sol, je met la valeur de ACCELERATION.y à zéro. Pour indiquer que la réaction du sol compense la pesanteur. Est-ce une bonne façon de faire ? Parceque de cette façon, ça indique à mon moteur que le personnage ne "descend" plus.
Donc voilà, ce sont mes plus "gros problèmes". J'ai cherché de mon côtés, et je trouve que ça fait un peu "à l' arrache" comme méthode, et donc j'aimerai avoir votre avis.
A tout hasard, quelqu'un connaît un bon bouquin pour implanter de la physique dans un jeu de plate-forme ? Ou alors même un article (anglais ou français) Car j'ai certes les notions de Terminale S mais j'ai du mal à les appliquer à un jeu vidéo.
En tous cas merci d'avance à ceux qui me liront et répondrons.
Partager