Pergunta

Eu estou usando Box2D (o / a versão AS3 Flash, se isso importa) e eu estou tentando calcular quanto peso cada corpo está carregando.

Eu sei como percorrer todos os corpos, e eu sei como para sondar as rotinas de detecção Collion, mas parece que as forças de colisão morrem a zero uma vez que o peso é aplicado. Existe algum tipo de "força estática total" propriedade que eu estou com vista?

Foi útil?

Solução

Usando o tipo contactResult no objeto contactListener opcional, você pode consultar o normalForce de cada item para descobrir o que as forças (que intrinsecamente inclui peso) estão sendo aplicados aos objetos.

Note que os corpos de dormir (a pilha descansando por exemplo) não vai contactResults gatilho, mas ele deve funcionar bem se você desligar dormir ou se você quiser medir forças somente enquanto o movimento está acontecendo.

Para obter informações sobre como implementar a classe contactListener verificar-se sobre a documentação.

Outras dicas

Tem sido um tempo desde que eu joguei com Box2D mas você já tentou polling GetReactionForce () nas coisas de interesse?

Eu sei que quando eu fiz uma simulação de ponte e eu queria a ponte para quebrar baseado fora o peso sobre ele, eu entrevistados GetReactionForce () e se ele foi acima de um certo limiar, então eu deletei a articulação que liga os dois corpos.

Eu acho que tudo o que você precisa fazer é percorrer suas instâncias b2Body e usar o GetMass ().

Eu não tenho certeza do que você quer dizer com "força estática total".

Quanto ao peso / massa Eu acho que você aplicá-lo antes de qualquer colisão, quando você cria o corpo, quer configurá-lo sozinho usando setMass (); ou ter box2d estimar uma massa com base na forma, utilizando o SetMassFromShapes () método.

hth

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top