2012-03-12 2 views
0

Я был в замешательстве в использовании контактного органа box2d.Now у меня есть body1 & body2.Когда 2 тела имели контакт, как я могу обеспечить, чтобы тело прибора было body1 или body2? Или как я могу определить, какое тело принадлежит fixtureA?Как обеспечить fixtureA

Я сделал эксперимент и обеспечил, чтобы корпус прибора был не случайным. Это все, что я могу обеспечить сейчас.

Ok.Maybe Я должен спросить по-другому. Теперь я могу определить тело светильникаА является body1 и каждый раз, когда это может быть body1. Но почему? Почему бы не body2? (Body1 & body2 - это просто имена как this.No последовательность.)

+1

fixture-> GetBody() – Andrew

ответ

1

Вы не можете гарантировать или принять какой-либо заказ светильников в прослушивателе контактов. На очень простой сцене обычно может быть вполне предсказуемым, какое будет оснащение, которое, но вы не должны полагаться на него всегда, так что вы должны написать свою программу, как будто порядок будет случайным.

Чтобы проверить, что вы имеете дело с обратным вызовом при прослушивании контактов, вам нужно либо сохранить указатель на прибор/тело, когда вы создаете его для сравнения, либо установить пользовательские данные в приборе/корпусе для проверки. Вы также можете выполнять другие проверки, например, проверить, какая форма имеет приспособление, или какой тип тела она принадлежит ... все, что вам нужно знать о приспособлении, чтобы выяснить, что с ним делать, зависит от Твоя игра.

+0

Thx много. Могу ли я каждый раз проверять Userdata. – ManuQiao