J'utilise Box2D pour un jeu de recul. Le "sol" est une série de tuiles, où chaque tuile est un corps statique avec une forme de capteur. Puis-je faire des frictions pour cela, même si les objets ne sont pas vraiment "en collision" avec le sol? P>
Si Box2D ne me laissera pas faire cela, j'ai envisagé d'essayer de mettre en œuvre la mienne en détectant quelle force déplace actuellement l'objet et applique une force opposée à celle-ci, mais je ne sais pas trop comment détecter cette force . P>
3 Réponses :
applypullse () code> au lieu de
ApplyForce () code> fonctionne beaucoup mieux. P>
Pourquoi applypullimse () code> fonctionne mieux que
applyforce () code>?
Une autre façon de faire est de définir lineardamping code> sur votre corps. Vous pouvez définir cela différemment en fonction de la tuile de votre objet. p>
Le frottement est dirigé contre la vitesse du corps, quelles que soient les autres forces. p>
Si vous définissez l'amortissement linéaire ne suffit pas ou si vous comptez sur une propriété de la B2body, vous pouvez facilement calculer facilement les forces de friction non linéaire et appeler applaudilinearimpulse () ou applylinearforce () chaque image. P>
Requête la vitesse avec B2body.getLineArvelocity (), échelle (non lonairement) résultat que vous souhaitez obtenir la force et inverser le signe des deux composants. P> LI>
Si vous décidez d'arrêter le corps (quand il est assez lent pour rester), SetLineArvelocity () fait l'affaire sans calcul. p> li> ul>
Dans la programmation physique de la physique du jeu, les forces sont généralement difficiles à utiliser. Les développeurs travaillent donc avec des vitesses / impulsions. Quant à pourquoi, c'est une histoire plus longue, mais vous pouvez vous référer aux négociations de GDC d'Erin pour cela