一座灯塔,一张电网。守住最后一束光。
在线试玩:last-beacon.loupengju.cc · 公开源码:stackloomdev/last-beacon。
Last Beacon 是一款可直接在浏览器中玩的原创等距海岛塔防。炮塔需要通过其他设施或中继站连接到灯塔;有限的电力容量决定哪些设施能够开火。建造、连线、升级,在十波机械生物的进攻中守护海岸,最后迎战深渊巨像。
- 三种防御设施:哨戒炮、迫击炮、寒潮塔。
- 中继站、电网容量与自动连接;出售设施会立即重新计算下游供电。
- 十波敌人、最终 Boss、六秒超频、三级升级、出售、暂停与双倍速。
- 程序生成的海岛、建筑、弹道和音效,无第三方游戏素材。
- 中英双语界面,适配桌面和手机;键盘和指针均可操作建造基座。
- 免费,无需登录、API Key、后端、安装依赖或外部资源。
- 最高抵达波次与通关纪录仅保存在当前浏览器。刷新会开始新的一局。
需要 Node.js 20 或更高版本。无需 npm install。
npm run dev打开 http://localhost:4173。若端口被占用,可使用 PORT=4174 npm run dev。
点击右上角 中 / EN 切换语言。首次打开时跟随浏览器的中文或英文偏好,其他语言默认显示中文;手动选择后会在当前浏览器中记住。切换不会重开游戏,当前波次、布防、资源、选中设施和暂停状态均保留。界面、玩法说明、提示、结算与基座的辅助阅读标签都会同步切换,单文件版同样支持。
npm run builddist/是可部署至任意静态站点托管服务的网站。支持放在子目录中。dist/last-beacon.html是完整单文件版,可下载后直接用现代浏览器打开。CSS、逻辑、绘制代码和合成音效全部内嵌,没有 CDN 或网络依赖。- 声音默认关闭,点击右上角音符按钮开启。
部署到 Vercel 时导入本仓库,Root Directory 保持 ./。仓库中的 vercel.json 已指定静态站点预设(Other)、构建命令 npm run build 和输出目录 dist,会覆盖控制台中的对应设置。无需环境变量。若此前出现找不到 public 的错误,请部署包含该配置文件的最新 main 提交。
- 初始获得 180 零件和一座免费哨戒炮。
- 选择底部设施,再点击岛上的空基座建造。悬停或键盘聚焦基座可预览射程。
- 浅色线路表示已连接电网。停机设施上方会显示
!。 - 灯塔连接距离为 3.5 格,普通设施为 3 格,中继站为 4.8 格。连接按两端较远的连接距离判断。
- 连接成功且剩余容量足够的设施才开火。按建造顺序分配电力;断开的设施不占容量。即使因容量不足而停机,设施仍能传导连接。
- 点击已有设施可升级或出售。升级会增加 1 点电力消耗;最高三级。出售返还实际投入的 70%,起始免费炮塔的基础退款为零。
- 电网可扩容四次,每次增加 6 点容量。
- 手动开始每一波。清除前九波后,获得补给、1 点容量并修复 5 点灯塔完整度。准备阶段不会自动出兵。
- 战斗中可开启超频:射击频率提升 80%,持续 6 秒,冷却 35 秒。可以在战斗中建造和升级。
- 让灯塔坚持到第十波结束。漏过的敌人会扣除完整度,深渊巨像抵达灯塔会直接摧毁它。
通常一局约 8–12 分钟(包含建造和思考时间);战斗本身因布阵、漏怪、减速和倍速而变化。
| 操作 | 按键 |
|---|---|
| 选择哨戒炮 / 迫击炮 / 寒潮塔 / 中继站 | 1 / 2 / 3 / 4 |
| 开始下一波 / 暂停战斗 | Space |
| 取消建造或选择 | Esc |
| 显示电网 | G |
| 开关声音 | M |
| 聚焦可操作控件 / 激活控件 | Tab / Enter |
切换到其他标签页会自动暂停正在进行的战斗,返回后手动继续。打开玩法或重开弹窗时会暂停,关闭后恢复原状态。手机布局将建造卡放在战场下方,指挥面板位于其后。
npm test
npm run build自动化测试覆盖:路径、电网断连与恢复、供电优先级、资源扣除、退款上限、暂停、倍速、超频、失败、胜利,以及使用真实预算完成全部十波的战役回归。双语测试覆盖文案和参数完整性、语言选择优先级、存储异常与动态错误提示。测试不向游戏注入无限资源。
完整验证记录见 docs/VALIDATION.md。
index.html 语义界面、帮助与结算弹窗
src/game.js 独立于浏览器的确定性战斗和电网规则
src/render.js Canvas 2D 等距绘制与粒子效果
src/app.js 建造交互、快捷键、界面和本地纪录
src/i18n.js 中英文文案、语言检测与偏好保存
src/audio.js Web Audio 合成音效
src/style.css 桌面与手机布局
server.mjs 无依赖本地静态服务器
build.mjs 静态目录与单文件离线构建
tests/ 规则、双语和完整战役回归
这是由 stackloomdev 发起、在 Codex 中与 GPT-6 Astra 迭代完成的作品。模型参与了玩法设计、程序化美术、代码实现、测试和文档;开发过程进行了独立代码审阅、规则测试与浏览器检查。这不是 one-shot 测试,也不是对所有设备的性能保证。
游戏运行时不调用任何模型或在线 API。
原创代码与程序生成素材使用 MIT License。署名:stackloomdev。