我正在编写一个roguelike并需要一个算法(最好是一个c实现)来找到效果攻击的锥形区域中的所有网格点,延伸到距玩家的距离r。
有人可以帮忙吗?
答案 0 :(得分:1)
从播放器所在的网格点开始,并将其添加到“已接受的网格点列表”。你的清单将从那一点开始。
接下来遍历您接受的列表,并针对每个列表(仅从一个开始)...在任何未触及的相邻网格点上,计算它们与玩家的角度和距离。如果这些单元格落在锥形参数的角度和半径范围内,请将它们添加到列表的末尾。如果该网格点位于外部,请不要将其添加到列表中。最终,当没有更多符合参数的未触及邻居时,你会点击列表的末尾。
这类似于A *算法,它将继续遍历所有相邻的网格点,直到你的列表中只有点落在你的锥体内。