2014-01-13 33 views
0

我正在構建一個二維自上而下的遊戲,我需要爲該路徑尋找一個區域的動態圖。是否可以設置b2Bodies/b2Fixtures,以便它們被AABB查詢或Ray-Casts忽略?

我正在考慮在感興趣的區域上疊加一個Box2D物體的網格(圓形或正方形)作爲「傳感器」。這些對象都是靜態物體,並且被標記爲傳感器,所以沒有碰撞響應,但是檢測到碰撞,我可以使用這個(碰撞回調)標記/取消標記導航圖中的節點被佔用,因此實體可以在它們周圍導航。

移動的實體仍然會將ray-cast和AABB查詢作爲其與環境交互的一部分(查找特定事物等)。我想不是有他們的查詢相交的傳感器網絡。

雖然我當然可以在實體使用的偵聽器對象中使用usertags和過濾器來過濾掉傳感器,但我想知道Box2D中是否已經有方法讓AABB/Ray-Cast查詢忽略某些固定設備?

回答

1

這個檢查通常最好在查詢回調中完成。 b2RayCastCallback和b2QueryCallback都有一個ReportFixture函數,它爲您提供了一個夾具,因此您可以檢查是否要忽略它。

(我不知道如果這是你在這個問題的最後一段是什麼意思......如果是這樣的話,我想答案就是「不」 :)

+0

我不認爲有這將成爲免費的午餐......如果系統爲我過濾這些查詢的能力已經存在,那將會非常方便。不用擔心...我可以工作。謝謝。 – FuzzyBunnySlippers

相關問題