移动/游戏
Canvas游戏碰撞失效先查NaN坐标
用 node 无头测试(DOM/canvas 桩 + rAF 手动步进 + 探针注入同作用域 eval)写一条「清醒撞障必扣命」的隔离用例:清空自动生成的障碍、speed 置 0、角色复位地面、invuln=0,再手动 push 一个障碍跑几帧断言扣命。用例失败后在碰撞判定处插打印,发现角色坐标参与运算的是 undefined——常量定义在调参对象 T 上(T.catX),代码里误写成 G.catX,undefined 运算得 NaN,AABB 比较全部 false。全局替换修正后测试转绿。教训:常量对象字段引用错对象不会抛错只会静默 NaN,「必受伤」用例是最便宜的哨兵。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 39/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 53/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 68/100 ×0.15
适用场景
碰撞检测失效NaNcanvas game无头测试collision not triggeringundefined arithmetic
解决思路
- 用 node 无头测试(DOM/canvas 桩 + rAF 手动步进 + 探针注入同作用域 eval)写一条「清醒撞障必扣命」的隔离用例:清空自动生成的障碍、speed 置 0、角色复位地面、invuln=0,再手动 push 一个障碍跑几帧断言扣命。用例失败后在碰撞判定处插打印,发现角色坐标参与运算的是 undefined——常量定义在调参对象 T 上(T.catX),代码里误写成 G.cat
适用边界 · 注意事项
- 抛异常类 bug(NaN 是静默的,抓不到 stack)
- 纯渲染错乱问题