# EMBERWELL · 烬井 Noita 风格的纯前端像素物理地牢。每个像素都会坠落、流动、燃烧或反应;法杖是容器,力量来自弹体、修饰与触发的连锁。 ![stack](https://img.shields.io/badge/Stack-Vanilla_JS_%2B_Canvas_2D-emerald) ![deps](https://img.shields.io/badge/Deps-Zero-lightgrey) ## 运行 ```bash python3 -m http.server 4173 # http://localhost:4173/ ``` 无需构建、无需 npm。桌面键鼠与手机触屏都可用。 ## 操作 | 键 | 动作 | | --- | --- | | A / D | 移动 | | W / 空格 | 跳跃;滞空时消耗悬浮条 | | 鼠标 | 瞄准;按住左键施法 | | F | 踢击 | | G | 投掷烧瓶 | | 1–4 | 切换法杖 | | E | 圣所改杖(或「随处工匠」祝福) | | Esc | 暂停 | 触屏:左摇杆移动,右圈开火。 ## 系统 - **40 种材料**,密度分层(油 0.8 浮于水 1.0,血 1.05 / 毒泥 1.15 / 酸 1.4 下沉,熔岩 2.6 沉底) - 熔岩遇水成石+蒸汽;酸蚀固体;火沿可燃物蔓延并熄灭 - 洞穴黑暗 + 提灯/火焰/熔岩/晶簇径向光照(含遮挡) - 法杖牌库:9 弹体 · 7 修饰 · 2 触发 · 2 多重;圣所拖配「三重+火轨+追踪」 - 矿坑→煤坑→菌窟→冻岩→熔湖,层间圣所祝福 - 六种敌人(冲锋 / 弹幕 / 飞行 / 自爆 / 潜地 / Boss 井瞳) - 死亡必显示死因:烧死 / 溺死 / 压死 / 毒死 / 溶蚀 / 被击杀 ## 实测(2026-10-29) 沙盒无 Chrome,使用 Node VM 驱动同一引擎 + `python3 -m http.server 4173`。 - `node verify.mjs`:**38/38 全绿** - 出生点能走(+26px)能跳(−25px)能施法(3 次) - 提灯旁亮度 230,远角洞穴 16 - 出生点瞄准岩齿:45 帧、4 次施法击杀,玩家仍 100 HP - 油浮水上、血沉水下、熔岩+水→石+蒸汽 - 烧死 / 溺死 / 压死 / 毒死 / 被击杀 文案均出现在死亡面板 - `node play_session.mjs`:种子 777001,329 帧 / 17 次施法,死亡面板「烧死 · 火焰吞噬了你的血肉」 - `GET /index.html` `GET /game.js` `GET /styles.css` 均为 HTTP 200 详见 [DONE.md](./DONE.md)。 ## 许可 机制灵感来自 Nolla Games《Noita》。像素、命名、物理与音效均为原创,未使用原作素材。