2011-05-13 15 views
1

我正在寫一個遊戲,其中一個圓形形狀落在由幾百個頂點組成的b2LoopShape上。Box2d循環形狀,確定平穩着陸

我試圖通過使用聯繫人偵聽器來確定我的着陸是否平滑(沿着邊緣或垂直於邊緣着陸),但無法正確識別。

任何想法?

回答

0

環形由多個邊緣部分組成。您需要遍歷所有邊緣線段,並找到每個邊緣上最接近圓點中心的點。所有這些中最接近的應該是實際用於碰撞的點。如果它位於其所屬的邊緣線段的「提示」之一,則該圓線會碰到邊緣的末端。如果它位於邊緣的中間位置,它會順利着陸。

我可能誤解了'順利'的意思,但無論如何,如果你這樣做了,你將有實際命中的邊緣的兩個端點和圓的行進方向,所以你可以用這些來決定自己是否順利。

+0

謝謝!我已經弄清了第一部分,但我想爲第二部分提出一個聰明的方法。 – erik 2011-06-18 22:52:36

+0

我不能給你一個實際的答案,因爲我從來沒有做過這件事,對此知之甚少,但在我看來,你需要的是一個光線投射(或兩個或三個),並可能是一個線性(或角)速度檢查。祝你好運。 – 2011-06-20 10:14:58