Bonjour,
mon problème est le suivant : j'ai un mesh soumis à la gravité. Et pour le faire se déplacer je applique à ce mesh une force dirigée suivant x. Dans ce cas on a la gravité (suivant -y) et la force (suivant x). Je place mon modèle à une certaine distance du sol pour pouvoir observer l'influence des deux forces. Mais mon problème est là car quelque soit la manière dont j'applique la force, il ne considère que celle là. Au final j'ai un mesh qui flotte en l'air et se déplace dans la direction de la force. Voila je vais vous montrer mon code sinon ça ne sert à rien (si vous voulez voir plus de choses, il suffit de demander) :
Main.cpp :
personnage.cpp :
Cela fait quelques semaines que je tourne en rond, soit c'est la gravité qui est appliquée seule, soit la force dirigée vers x et je n'arrive pas à les assembler. Si vous pouviez m'expliquer pourquoi j'ai ce problème, merci d'avance.
PS : Dans le code qui apparait, les "case" du "switch" sont faux alors que dans le code ils sont justes donc je les recopie juste pour que le code soit plus clair (il y a bien sur des "" autour des adresses des fichiers mais ils sont mal pris en compte dans la balise code=cpp) :
Dernière modification par Kaze (02-08-2013 20:01:36)
Hors ligne
puisque personne n'est présent, j'ai chercher un peut
l'idée semble correct
irr::core::vector3df force(10.f, 0.f, 0.f);
NewtonBodyAddForce(persoBody, &force);
me semble tout fois plus approprié que
NewtonBodySetForceAndTorqueCallback(persoBody, ApplyForceX);
mise a par ça je ne voie pas, n'étant pas utilisateur de Newton tu m'excusera
http://irrlicht-fr.org/viewtopic.php?id=1697&p=1 tu trouvera peut-être quelque chose ...
sur ce bonne chance, je serai dans les parages si beusoin, bien que je ne soit le plus approprier à te venir en aide
Hors ligne
Alors je pense avoir trouver le problème, je suis retourné voir la doc et j'ai remarqué que lorsque les callbacks étaient appelés avec NewtonBodySetForceAndTorqueCallback, Newton s'occupait d'effacer toutes les forces appliquées aux body en question. Donc je suis en train de chercher un moyen de contourner le problème.
Hors ligne
save la force au moment du SetMeshTransformEvent je pensse qu'il est appeler a la fin de la simulation,
force que tu restitue dans ApplyForceAndTorqueEvent
tu crée un structure genre
que tu passe à NewtonBodySetUserData
je me demandais, ça me semble logique qu'il clear la force a chaque step, puisque ta force seras rapporter sur la velociter ... non ?
en plus tu risque d'avoir des problèmes de gravité
dans ce cas tu devrait plutot passer par NewtonBodySetVelocity
et faire un truc dans le genre
ps: je t'invite ici https://dl.dropbox.com/u/103286/temp/MN … 0120721.7z peut-être trouvera-tu quelque chose
Hors ligne
Alors j'avais pensé à faire ça mais à moindre frais vu qu'au final je n'avais que deux forces qui allait être conserver (la gravité + une pour avoir un mouvement constant dans une direction). Je voulais rajouter ces deux forces à chaque callback comme ça elles sont toujours présentes.
Mais ton idée m'intéresse énormément donc je vais essayer de faire quelque chose de bien.
Hors ligne
Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
---|---|---|---|---|
Corrections |
|
xhtml 1.0 css 2.1 Propulsé par FluxBB Traduit par FluxBB.fr |
882 membres 1429 sujets 11119 messages |
Dernier membre inscrit: LiseBuisson96 44 invités en ligne Aucun membre connecté RSS Feed |