游玩并调整速度
点击「开始」,然后跳过仙人掌。拖动速度滑块可以试玩更慢或更快的游戏;也可以切换为固定速度。选择还原后的规则,从 6 开始再次逐步加速。
试玩重建版
原始规则:从6开始,然后向13增加。
阅读 REA 返回的脚本
我们用 REA 检查了 wayou 基于 Chromium 的浏览器版本。它返回了已加载的 index.js,其中包含游戏更新函数里的这个分支:
if (this.currentSpeed < this.config.MAX_SPEED) {
this.currentSpeed += this.config.ACCELERATION;
}
设置为 SPEED: 6、ACCELERATION: 0.001 和 MAX_SPEED: 13。在没有发生碰撞的那次更新中,游戏会执行这个分支。
在新游戏中使用相同的规则
function advanceSpeed(speed) {
return speed < 13 ? speed + 0.001 : speed;
}
这个迷你游戏用这个函数实现自动加速。拖动滑块则改为固定速度。绘图、跳跃物理和矩形碰撞检测是这个教学游戏中新写的代码;它的模拟以每秒 60 次更新的速度推进。
检查重建
我们在禁用障碍物和自动调度的情况下调用了原游戏的更新函数。把这些记录下来的速度与重放还原出的规则所得的结果做个比较。
| 更新次数 | 原版游戏 | 重建规则 |
|---|---|---|
| 0 | 6.000 | 6.000 |
| 1,000 | 7.000 | 7.000 |
| 4,000 | 10.000 | 10.000 |
| 10,000 | 13.001 | 13.001 |
数值保留三位小数。该分支在加法前先做判断,因此最终的增量可能让速度略高于 13。
自己试试分析
- 配置 REA,配合你的编程助手使用。
-
跟随 浏览器连接步骤,使用
https://wayou.github.io/t-rex-runner/作为页面URL。 - 为你的编程助手提供页面URL和本地调试端点,然后复制此提示。
使用REA检查这个恐龙游戏。 为什么它变得更快? 显示速度规则,然后构建一个可调节速度的小版本。
要求跟进: "跳跃高度在哪里计算? 在新版本中添加跳高控件。”
资料来源: 检查速度代码,Chromium作者。 版权及BSD许可证. REA4.1.0检查了Chrome150中运行的HTTP版本。