SuperAPI AI 工具集

fog-of-war-js-ts

编程与开发

查看项目

更新于 10-16 03:46

技能介绍

本技能是针对 JS/TS 游戏中战争迷雾与视野(FOV)系统的性能与正确性指南,内容整理自经典 FOV 文献(Björn Bergström、Albert Ford、Adam Milazzo)、Red Blob Games、rot.js 以及 MDN/WebGL 渲染 API。共 44 条规则,分 8 个类别并按影响优先级排序,用于指导可见性代码的编写、审查与重构。

适用时机:为网格或连续地图实现视野、视线或瓦片可见性时;构建或重构迷雾显示(未探索/已探索/可见三层)时;诊断迷雾过慢(每帧重算)、视觉伪影(闪烁、漏光)或大地图内存暴涨时;将可见性扩展到多单位(RTS)或大型/流式世界时;选择可见性与已探索状态的存储与渲染方式时。

规则类别(按优先级):FOV/可见性算法(CRITICAL,前缀 fov-);更新调度与增量重算(CRITICAL,update-);状态表示与数据结构(HIGH,state-);迷雾层渲染(HIGH,render-);内存与分配(MEDIUM-HIGH,mem-);多观察者与地图扩展(MEDIUM,scale-);几何与热循环数学(MEDIUM,geo-);正确性与视觉伪影(LOW-MEDIUM,correct-)。

核心要点:用递归阴影投射而非逐格射线;优先对称阴影投射;用查找表变换八分区;扫描限制在视半径与地图边界内;仅当观察者移动时重算 FOV;用脏标记与地图版本戳;多观察者按瓦片引用计数增量更新;发出可见性增量而非清空重算;用类型化数组与 y*width+x 扁平索引存储状态;三态编码为位标志;迷雾渲染到独立离屏层并只重绘脏区域;用 ImageData 而非逐格 fillRect;复用缓冲区;用代次戳跳过每帧清空;大地图分块常驻;用平方距离避免 sqrt;用有理斜率避免浮点漂移;预计算方向避免循环内三角函数;统一宽容度模型;已探索层不被可见层覆盖。

使用方式:从 fov- 与 update- 两类入手以获得最大收益(正确算法与仅变更时重算),再按需查阅各参考文件中的完整说明与反例/正例代码。参考文件包括 references/_sections.md(类别定义与影响排序)、assets/templates/_template.md(新规则模板)、metadata.json(版本与参考信息)。

限制:资料未提供具体安装命令、平台支持范围、收费或许可信息,暂未提供。