Moteur physique Bullet, comment geler un objet?
À l'aide de Balle 2.76 je suis en train de geler un objet (corps rigide), de sorte qu'il instantanément arrête de bouger, mais répond toujours à des collisions.
J'ai essayé le réglage de l'état d'activation de DISABLE_SIMULATION, mais il est alors pratiquement inexistant à d'autres objets. En outre, si des objets "collision" avec elle quand elle est désactivée, des choses étranges commencent à se produire (l'objet de la chute de la statique des corps, etc.)
Je suppose que, temporairement conversion statique des corps rigides pourraient travailler, mais est-il un "natif" de façon à obtenir sur Puce?
Edit: Est t-il un moyen de désactiver la gravité pour un objet spécifique?
source d'informationauteur sunside
Vous devez vous connecter pour publier un commentaire.
La documentation est un peu défaut, mais on peut supposer que la méthode ci-dessous peut être utilisé pour désactiver la gravité sur un organe spécifique:
Juste ensemble de corps rigide de masse à 0, alors il devient statique...
http://bullet.googlecode.com/svn/trunk/Demos/HelloWorld/HelloWorld.cpp
Il existe des fonctions pour
btRigidBody
appelésetLinearFactor(x,y,z)
etsetAngularFactor(x,y,z)
qui vous permettent de limiter le mouvement le long d'un axe spécifique et de rotation autour d'un axe, respectivement. L'appel de ces deux fonctions avec tous les0
's que les arguments d'arrêter tout mouvement. En les appelant à nouveau avec toutes les1
de la volonté de permettre le mouvement encore.Définir l'état d'activation à zéro. C'est ce qui arrive lorsque l'objet dort naturellement. La gravité et ainsi de suite ne prendra pas effet jusqu'à ce qu'il se réveille de nouveau.
Puis juste comme n'importe quel objet de couchage, il sera réveillé sur une collision ou si vous appliquez une force.
Pour cette méthode pour arrêter de votre acteur, vous devez appeler à ce que chaque mise à jour du cadre.
définir la vitesse et de dynamisme à zéro et l'ensemble de la masse d'un très, très grand nombre.