这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。
12.2 打击感、粒子与反馈
把「打击感」拆成可量化的三要素:屏幕震动(幅度按几何比衰减、方向交替)、命中停顿帧、缩放脉冲。三者全用整数、无随机,同一权重与同一时刻必得同一结果,最后用单文件 HTML 原型配 Playwright 断言「命中→震动→衰减到静止」的完整数值序列。
posts
这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。
把「打击感」拆成可量化的三要素:屏幕震动(幅度按几何比衰减、方向交替)、命中停顿帧、缩放脉冲。三者全用整数、无随机,同一权重与同一时刻必得同一结果,最后用单文件 HTML 原型配 Playwright 断言「命中→震动→衰减到静止」的完整数值序列。
把手感拆成可计算的缓动曲线与时间轴:用整数定点实现线性、二次、三次、回弹、弹性五种缓动(进度取千分比、避开浮点),再搭一个支持并行串行、延迟、打断与 onComplete 的时间轴调度器,最后用单文件 HTML 原型配 Playwright 无头推进时间、采样动画值。
把 UI 性能拆成可算的整数:元素按「纹理 + 材质」合并绘制调用,作者顺序里相邻元素键不同就打断合批;给出收益模型脚本、CSV 与 SVG,再用 B 基准扫元素数看 UI 帧占比在哪一档越过预算——同一份配置跑 Python 仿真,数字全来自本机实跑。
把弹窗从「随手 new 一个框」升级成可算的弹窗栈:按层级压栈、同去重键拒绝重复、超时自动关闭、模态遮罩拦截点击穿透、点遮罩只关最上层模态——配可跑内核、单文件 HTML 原型与 Playwright 无头验收,全程整数毫秒、可确定性回放,无需真实时钟。
把 UI 布局拆成可算的整数像素:锚点(左右上下与拉伸)+ 偏移 + 边距递归求每个节点的最终矩形,用层级决定绘制顺序与遮挡,用点命中判断谁在最上面,再用虚拟滚动只实例化可视区间——配可跑内核、单文件 HTML 原型与 Playwright 无头验收。
把微信 / 抖音 / QQ / 百度与浏览器摆成一张五维能力兼容矩阵:登录、支付、广告形态、分享、云存档逐平台对比,每个平台再配一份「已知差异」清单,并用可跑的 S 层脚本统计差异条目数、按复用系数估算边际适配工时与总成本,并给出差异维度分布与三个可执行结论。
把同一份会话逻辑分别注入 Node mock 宿主与浏览器宿主,用同一组输入序列驱动,断言两侧终局摘要逐位相同。给出可跑的 session.ts、单测、浏览器宿主构建脚本与 Playwright 无头验收,正文给出两侧真实摘要值与 ok/fail/cancel 三态分布。
把登录、支付、广告、分享、云存档五类平台能力收敛成一组统一签名:每个方法返回 ok/fail/cancel 三态结果对象而不抛异常,业务代码里没有一处 try/catch。给出可跑的 PlatformAPI 接口定义、确定性 mock 宿主与三条路径都有断言的单测。
把「自研还是用引擎」变成一个可算的分界问题:用整数递推把引擎路径(前置 120 人时、每项功能按 70% 消耗、对定制功能加 55% 约束代价)与自研路径(前置 260 人时、逐项提速)逐步累加,看累计人时何时交叉,再用 5×5 网格扫出什么条件下自研划算。
给八条引擎 × 八条选择维度配上可调权重,算出加权总分与排名,再做单权重 ±20% 敏感度分析与 33 个场景的排名稳定性基准:LayaAir 与 Cocos Creator 总分只差 1 分、榜首随权重切换,Defold 与 Phaser 名次纹丝不动,回答哪些选型结论可以信、哪些不能。
小游戏引擎不是只有 Cocos。本节把 Cocos Creator、LayaAir、Egret、Defold、Phaser、PixiJS、Unity WebGL 与原生 Canvas 八条路线放进一张公开可观察的格局对照表,并用一段 S 层脚本统计各引擎开箱内置的能力轴覆盖:从 8 条全内置到 0 条全自建,看它们如何排成一条引擎到框架再到渲染库的谱系。
《小游戏开发实战》卷二《引擎、实现与体验打磨》全书目录与阅读路径:16 章 48 节,覆盖引擎选型评分、工程骨架与构建管线、渲染适配、资源管线、游戏循环与状态机、输入交互、物理碰撞、存档反作弊、对象池内存、平台能力适配层、UI、动效、新手引导、性能优化、测试与工程化,每节都配可跑的 Python 仿真、TypeScript 内核或单文件 HTML 原型。
以 arch-lab 订单系统为例,把同一套值对象、端口、密封结果、状态机与补偿逻辑分别用 Go 1.26 和 Java 21 实现并真实运行,对照错误处理、可空性、接口闭合性以及 goroutine 与虚拟线程的并发模型差异,并给出双向迁移检查表与常见误译。
把第 7 章手写的 Book、Member 换成 record:看编译器自动生成访问器、equals、hashCode 与 toString,用紧凑构造器保留校验,处理 record 不能被继承后 StaffMember 的迁移,并用可变组件共享引用、紧凑构造器直接赋字段、继承最终类三个真实边界说明 record 的限制。
把弱网打开、进程回收恢复、支付回调重复、包体超限四个质量属性场景转成可评分风险条目,用影响、概率、发现难度三维打分并排序,给出阈值、结论判定与固定输出格式,附一次基线评审记录、风险关闭过程,以及清单如何进入下一轮迭代并转化为可执行的发布条件。
上线前先问「哪个参数最危险」,上线后再问「经济有没有跑偏」。这一节对五个关键参数做 ±20% 单参数扫描,按稳态存量摆幅排出最危险的三个参数;再用最小二乘从存量时序反推漂移速率,判定通胀/通缩/稳态,并以一组已知漂移的对照序列做检测基准验证。
收口卷一的模块依赖:把各章实验整理成带层级的模块清单,构建依赖图、Kahn 拓扑排序、回路检测与方向校验,输出可直接写入评审记录的文本。附卷一真实依赖图的结论,说明 summary 组合根为什么允许向下穿透多层,以及依赖图与架构图之间仍缺的那部分证据。
从 LibraryService 只持有 LibraryRepository 接口却能调用到内存实现这件事出发,讲清编译时类型与运行时类型、invokevirtual 与 invokeinterface 的查找过程、字段隐藏和构造器调用可覆盖方法的陷阱,并用罚金策略与 javap 输出把动态分派落到可验证的代码上。
bastion 的配置表字段字典与 schema:resources / buildings / units / battle 四张核心表的每个字段含义、类型与取值范围,整数比与整数百分比的表达约定,以及一份可跑的 schema 校验脚本——它能在仿真和原型跑之前,先把配错字段的配置拦下来。
pebble/config/ 的字段字典与 schema:economy.json 与 ch00_budget.json 每个字段的类型、含义与取值范围,一份可机读的 schema(D 层),以及一段真跑的校验脚本(S 层)。核心纪律是 config 里禁浮点——增长率写整数比、系数写整数百分比,随机数必须可播种。