【发布时间】:2016-07-07 17:20:24
【问题描述】:
我正在尝试在我的游戏中实现视野算法,我在这里遵循了很棒的教程:sight-and-light,这是我到目前为止得到的:
你可以看到它对我来说很好:)
然后我尝试在平铺地图中使用此算法。它也可以正常工作,但有点慢,所以我现在正在尝试找到一种优化算法的方法。
一些信息可能有助于优化:
- 平铺地图是正交的
- 所有图块的大小都是相同的 32 * 32 并且是正方形
- 标记为 0 的瓷砖表示空,标记为 1 表示障碍
- 我已将连接组件标记算法用于预处理:
- 所有障碍物已合并到多个区域中
- 我知道每个区域的所有顶点位置
类似这样的:
假设我有 9 个连接区域(9 个多边形)和总共 40 个顶点。
根据上面链接中的算法,会有:
- 光线投射:40 * 3(每个顶点角度 3 次光线投射 +- 0.00001)
- 边数:40
- edge * ray-cast 相交测试:40 * 40 * 3 == 4800
我认为应该有一种方法来减少我需要在上述情况下进行交集计算的光线投射计数和边缘计数,但只是想不出一个好的解决方案。
任何建议将不胜感激,谢谢:)
【问题讨论】:
标签: javascript algorithm grid tiles