2016-08-18 1 views
0

Je souhaite modifier dynamiquement la taille d'un appareil. A l'origine je détruisais le luminaire à chaque image, puis le recréais avec la nouvelle taille. Le problème avec ceci est que puisque je suis en train de recréer des fixtures à chaque frame, le ContactListener est foutu car il appellera beginContact et endContact chaque frame (puisque je continue à détruire/recréer le fixture). Y at-il un moyen de contourner cela? J'ai besoin de l'auditeur de contact pour travailler. Merci!Box2D | Redimensionner l'appareil sans détruire/recréer?

Répondre

0

Je pense que vous cherchez quelque chose comme this (si vous utilisez le rayon comme une taille).

Dans votre ContactListener vous pouvez accéder aux luminaires à tubes de votre corps, par exemple (en utilisant Kotlin):

override fun beginContact(contact: Contact) { 
    contact.fixtureA.body.fixtureList[0].shape.radius *= 0.99f 
    contact.fixtureB.body.fixtureList[0].shape.radius *= 0.99f 
} 

Cela réduira le rayon de deux corps en forme de contact avec le cercle à 1 pour cent. J'espère que cela aide un peu.