2013-08-17 36 views
-1

我正在寫一個roguelike,並需要一個算法(最好是c實現)來查找擴展到玩家距離r的效果攻擊的錐形區域中的所有網格點。查找2d圓錐形狀的網格點

任何人都可以幫忙嗎?

+0

錐體是如何定義的?如何定義網格點?你有什麼嘗試?它會給你什麼(不正確的)結果?什麼是「胭脂」。 –

+0

你的意思是[圓形部門](http://en.wikipedia.org/wiki/Circular_sector)? – sh1

+0

充滿圓形的部門將工作。 –

回答

1

從玩家所在的網格點開始,並將其添加到「接受的網格點列表」中。你的名單將從那一點開始。

接下來遍歷您接受的列表,併爲每個列表(從一個開始)...在任何未觸及的鄰居網格點上計算它們與玩家的角度和距離。如果這些單元格落在錐體參數的角度和半徑範圍內,則將這些單元格添加到列表的末尾。如果該網格點在外面,請不要將其添加到列表中。最終,當沒有更多未觸及的符合參數的鄰居時,您將會到達列表的末尾。

這與A *算法類似,該算法將繼續走過所有相鄰的網格點,直到列表中除了包含在圓錐內的點全部爲止。