Je sais que cela brise les lois de la physique, mais bien qu'il y ait souvent des raisons pratiques pour changer instantanément la position et l'orientation d'un corps dans un jeu, la plupart des bibliothèques de simulation physique Je ne le permets pas, donc Bullet Physics ne le fera pas non plus. Donc, j'apprécierais toute suggestion ou commentaire sur celui-ci. Par ailleurs, la téléportation vient à l'esprit qui nécessite ces changements instantanés. Une application plus exotique pourrait également être l'inertie - par exemple lors de l'inclinaison ou de la rotation d'un appareil portatif avec accéléromètre, de sorte que les objets sembleraient être statiques par rapport à l'utilisateur. La réalité augmentée ne devrait pas sembler ringarde.Modifier la position/orientation de btRigidBody à la volée dans Bullet Physics
Répondre
En supposant que je comprends votre question correctement, je vous recommande de vérifier BulletDynamics/Character/btCharacterControllerInterface.h
et/ou BulletDynamics/Dynamics/btActionInterface.h
. Souvent, on veut "plier les règles" lors de la mise en œuvre du mouvement de caractères - pour implémenter la téléportation, par exemple, on pourrait utiliser la méthode void warp(const btVector3& origin)
de btCharacterControllerInterface
.
Personnellement, j'ai eu la meilleure chance d'hériter directement de btActionInterface
, en stockant un pointeur vers un btGhostObject
que je peux mettre à jour et implémenter ma logique à partir de là, mais YMMV.
Note: Si vous êtes juste vouloir changer la position et l'orientation, vous devriez être en mesure d'appeler la méthode void setWorldTransform(const btTransform& worldTrans)
pour btRigidBody
.
- 1. Réalité augmentée + Bullet Physics - problème avec RayTest/Ray picking
- 2. Bullet Physics, quand choisir quel DynamicsWorld?
- 3. Bullet Physics sur Smartphone? (Android/iPhone)
- 4. Comment définir une collision en utilisant la bibliothèque Bullet Physics?
- 5. Impossible de compiler une simple application Bullet Physics
- 6. modifier xml à la volée
- 7. iPhone Modifier TabBar à la volée?
- 8. javascript modifier html à la volée
- 9. Modifier le port Tomcat à la volée
- 10. Modifier le code IL à la volée
- 11. Modifier des éléments de menu à la volée dans Drupal?
- 12. Modifier la base de données active à la volée
- 13. modifier la pile à la volée de c programme
- 14. Utiliser Bullet Physics pour charger le modèle OBJ à btGImpactMeshShape mais le résultat est mauvais
- 15. Python comment modifier la valeur d'une variable à la volée
- 16. modifier la propriété svn directory à la volée avec svnkit
- 17. Modifier le fichier de ressources à la volée
- 18. Modifier les propriétés de tomcat à la volée
- 19. Modifier les règles de validation à la volée
- 20. Est-il possible de modifier une sélection à la volée?
- 21. Modifier le style UINavigationController à la volée - objectif-c
- 22. maven modifier les propriétés à la volée (runtime)
- 23. Modifier les valeurs à la volée pendant SqlAdapter.Fill()
- 24. edit javascript à la volée
- 25. utilisateur Git à la volée
- 26. Ajouter DataMemberAttribute "à la volée"
- 27. Modifier le pitch OpenEars dynamiquement (à la volée)
- 28. Comment modifier JNDI Ressources personnalisées Propriétés Valeurs à la volée
- 29. Zend_Route à la volée
- 30. Édition bitmap à la volée dans Android
Est-ce que setWorldTransform change aussi la position du corps physique et la rotation, ou seulement la "peau" ou la représentation graphique? – rraallvv
En fait, l'appel à setWorldTransform devrait seulement mettre à jour la partie physique - la mise à jour de la représentation graphique est à vous, bien que relativement simple à faire. (: –