找到2d圆锥形状的网格点

时间:2013-08-17 17:40:50

标签: c algorithm roguelike

我正在编写一个roguelike并需要一个算法(最好是一个c实现)来找到效果攻击的锥形区域中的所有网格点,延伸到距玩家的距离r。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

从播放器所在的网格点开始,并将其添加到“已接受的网格点列表”。你的清单将从那一点开始。

接下来遍历您接受的列表,并针对每个列表(仅从一个开始)...在任何未触及的相邻网格点上,计算它们与玩家的角度和距离。如果这些单元格落在锥形参数的角度和半径范围内,请将它们添加到列表的末尾。如果该网格点位于外部,请不要将其添加到列表中。最终,当没有更多符合参数的未触及邻居时,你会点击列表的末尾。

这类似于A *算法,它将继续遍历所有相邻的网格点,直到你的列表中只有点落在你的锥体内。