← 回成果库

travel-2d RPG P1 实装交付:历史人物 NPC + 实景照片 + 寻宝图鉴

日期:2026-07-24 | 项目:M-320 / P518 | 线上:https://metazero-terminal.pages.dev/travel-2d/rpg

改动文件:web/terminal/travel-2d/rpg.js(+约180行)、rpg.html(按钮/灯箱/样式)

一句话结论

三个功能全部按主席要求做成"到了城市自动激活、零预建数据库":任何城市(包括没人去过的小城)走近就实时从维基百科/Wikidata 拉数据,拉不到就优雅地不显示,绝无手工维护成本。

本次上线的三个功能

① 历史人物 NPC(金光小人)

② 实景照片(Wikimedia Commons)

③ 寻宝图鉴(宝物=当地真实地标)

YouTube 视频内嵌问题的答案(主席三连问)

1. 要用你自己的东西吗?收费吗? 是用你自己的 Google 账号免费申请一个 key(Google Cloud Console)。不收费——免费配额每天 1 万单位,每次搜索耗 100(≈每天 100 次搜索),超了当天不能再搜但不会扣钱。(来源:Google 官方文档 + 多方 2026 年确认,E1)

2. 观众要登录吗? 完全不用。key 是网站自己的"后台通行证",游客无感;内嵌播放器就像未登录看 YouTube 一样直接播。key 放在前端可被人看到,标准做法是在 Google 后台把 key 限定"只能从 metazero-terminal.pages.dev 调用",别人偷了也用不了。

3. 能不能做成游戏内浏览+点开播放? 能,这正是推荐形态:点城市→游戏内弹出视频列表(封面图+标题)→点一个→小窗直接播放,全程不跳出游戏。唯一需要 key 的是"搜出列表"这一步;播放本身永远免 key 免登录。配合缓存(同城同主题只搜一次),你自用 100 次/天配额足够。

测试与验证(全部真实执行)

结果
node --check rpg.js 语法✅ 通过
本地运行时冒烟(无头浏览器真跑,抓 pageerror)✅ 0 错误,boot 完成
mock 网络端到端(灌真实结构数据走全流程)✅ 名人刷出4个/对话含名字+摘要+视频按钮;宝箱开出"红场"入图鉴;图鉴面板显示;城市照片条渲染;0 错误
名人链路真数据验证(python 复现同逻辑)✅ 莫斯科/长沙/雷克雅未克均拉出真实名人;Wikidata 限流时备胎接管
三个新接口浏览器跨域(CORS)许可✅ 全部 access-control-allow-origin: *
Cloudflare 部署✅ 部署完成,主入口 200
线上=本地已测版本✅ rpg.js / rpg.html 字节级一致(diff -q)
容器内直连线上浏览器冒烟⚠️ 容器代理拦浏览器出网,无法在容器内跑(线上文件与本地已测文件逐字节相同,以此闭合)

红队自审