森林冰火人 H5
< 返回主页
简介
这是基于 H5 技术重制的《森林冰火人》小游戏(重制版的官方名称为「冰娃与火娃」),无须依赖 Flash 运行。相关原始文件来自 4399 小游戏,通过自动化抓取获得。
游玩
注意:1-4 版本的加载界面进度条都是坏的。首次加载可能需要半分钟时间,请耐心等待。
1. 森林圣殿(额外关卡 51-66)
2. 光明圣殿
3. 寒冰圣殿(额外关卡 51-66)
4. 水晶殿
5. 元素
6. 童话
关卡明细
修改说明
游戏选项
- 关卡明细页面支持对每个版本导出、导入和清空游戏进度数据。
- 无敌版和关卡全开功能可按需开启。
- 无敌版仍然会出现死亡音效和动画,不是 bug,是刻意的游戏设计。
要访问这些功能,请打开关卡明细页面并选择游戏版本。
修复与体验优化
许多非修复性质的更改都可以由 JS 代码开头处的 GameConfig 全局对象中的参数控制,但是尚未提供可以直接使用的设置界面。如果你想尝试修改它们,可通过用户脚本(在游戏加载之前)定义一个 GameConfig__setOverrides 全局函数来覆写这些值。注意,游戏加载后再修改 GameConfig,部分选项可能不会生效。
界面
- 所有版本现在均会在结算界面显示关卡限时。
- 触屏设备增加进入全屏模式的按钮(页面左上角),可以全屏游玩。测试表明,单人触屏游戏模式下所有关卡都可等级 A 通关,虽然有的可能比较难。
- 如果使用鼠标滚轮或捏合手势将关卡缩小到 0.97 以下的尺度(最小尺度为 0.9),则游戏继续时,关卡只会自动放大到 0.97,不会恢复到镜头跟随玩家的状态。这使得在屏幕较小的设备上也可以一直以「全景视角」游玩。若要恢复原来状态,须手动用滚轮或扩张手势放大到 0.97 以上。
游戏机制
- 修复了水晶殿中的钻石形关卡结算时不考虑小钻石的问题。
- 修复了高刷新率屏幕下鼓风机风力感觉明显更弱的问题。
- 原因摘要:鼓风机除了产生推动力之外,还会对风场中的物体施加阻尼,而原代码逻辑中,阻尼常数设置时未考虑时间步大小,导致时间步较小时等效阻尼强度明显偏大。
- 先前关卡 1-3、1-51 和 5-冰-5 由于此问题导致在我的测试设备(165Hz)上几乎无法通关,因而被编辑,现在这些关卡已被恢复原样。
关卡
- 编辑了关卡 1-64、2-1、3-1、3-2、4-1、4-2、5-光-1、5-冰-1 以修复教程文本在移动端缺失的问题。
声音
- 修复了镜子滑杆停止移动后仍然继续发出声音的问题。
- 原因摘要:原代码中的预期逻辑是「只要滑杆位置与上一刻不同且当前没在发出声音,就发出声音」,但是忘记更新「上一刻位置」,导致必须将滑杆毫无误差地推回初始位置才会停止发出声音,而这几乎不可能。
- 这一逻辑本身也不太合理,因此现在发声机制被改为基于位置的,即滑动越快发声越密集,从最左到最右固定发声 26 次。
- 修复了计时按钮发出巨大噪音的问题。
- 原因摘要:原代码中的预期逻辑是「如果按钮上一刻处于未按下状态且当前正处于被按下状态,则发出状态变更信号」,但是忘记判断「上一刻处于未按下状态」。
兼容性
- 修复了高刷新率显示器下游戏运行速度整体变慢的问题。
- 原因摘要:游戏假设屏幕是 60 帧并且硬编码。
- 最早是通过测定屏幕刷新率解决问题,但现在可变刷新率屏幕比较普及,这种做法很脆弱。此外,这种做法将渲染和物理引擎都提速了,设备不一定算得过来,如果算不过来也可能导致游戏不丝滑甚至变慢。
- 使用更加正确的方式适配了不同刷新率的屏幕。
- 完全干掉了刷新率测量。
- 原先游戏内硬编码的屏幕刷新率现在硬编码为
Infinity。由于垂直同步,游戏内帧率仍会受限于屏幕刷新率,不会无限制。
- 引入了物理引擎刻速度调节器,使物理引擎与渲染的时间步分离。目前的默认配置下,物理引擎会在 50~100TPS 范围内跟随帧率自适应调节刻速度。
额外关卡
- 部分版本添加了额外关卡(编号均大于 50)。有的关卡由原版关卡修改而来,在选关界面中会附在原关卡上。
- 如果你无法看到额外关卡,请尝试清除浏览器缓存。
数据收集
- 在你访问页面或游玩时,我们会收集一些匿名化的浏览情况数据用于流量分析。
- 分析数据不包含 IP 地址,无法关联到个人,也不会被提供给第三方。
魔改指南(不完全)
如果你想要自己尝试修改游戏或添加关卡:
- 你可合理利用浏览器开发者工具以及其他自动化工具抓取游戏资源文件和关卡数据文件。获取到的内容仅限用于非商业的测试与教育用途,滥用后果自负!
- 编辑关卡文件的工具是 Tiled。要使关卡能在编辑器能够正常展示,你可能需要一些补充文件。
- 此处的「关卡明细」界面是一个自行实现的可视化关卡表编辑器。由于依赖 PHP 运行,部署并不方便,且目前其代码暂未公开。如果你想要更改关卡表(包括关卡类型、时限等信息),可以尝试自行阅读关卡表数据文件并手动编辑,这并不困难。