一款面向手机体验的纯前端 Canvas 赛博朋克重力感应躲避游戏。玩家通过左右倾斜手机操控蓝色数据球,在不断变换的赛博隧道中躲避红色防火墙、收集道具、积累连击,并在失败后接收 AI 主脑的嘲讽结算报告。
在一个由高维 AI 主脑控制的赛博数据库中,所有入侵路径都被压缩成一条高速旋转的防火墙隧道。玩家操控的蓝色小球不是普通角色,而是一枚正在潜入核心系统的「数据探针」:它承载着黑客代号、入侵载荷和最后的突破机会,只能贴着外围轨道在防御缝隙中穿行。
红色方块群代表主脑部署的主动防火墙规则。它们会从隧道深处不断逼近,像安全策略、追踪程序和封锁协议一样压缩玩家的生存空间。玩家存活越久,就越接近核心数据库;同时,系统也会切换不同防御区域,让隧道从数据漩涡、机械舱道一路升级到量子回廊、熔岩核心和冰晶管道。
失败时出现的嘲讽不是普通 Game Over 文案,而是 AI 主脑完成追踪后的「裁决报告」。它会根据玩家的黑客代号和存活时长生成一句冷酷、傲慢的赛博反派嘲讽,表现出主脑对入侵者的俯视和羞辱。如果 AI 接口不可用,游戏会使用本地备用嘲讽,保证结算体验不中断。
- 在线游玩:https://cyber-infiltration.pages.dev/
- 手机体验:扫描海报上的二维码,使用手机浏览器打开游戏。
- 手机重力感应操作:使用
DeviceOrientationEvent读取陀螺仪/方向传感器数据,通过倾斜手机控制光球移动。 - 纯前端单文件实现:核心逻辑、Canvas 渲染、UI、音效和本地存储都集中在
index.html,无需构建步骤。 - 赛博隧道视觉系统:包含多主题区域、速度线、前景闸门、背景粒子、区域切换冲击波和 RUSH 视觉反馈。
- 动态难度与连击得分:存活时间越久,障碍速度、生成频率和得分压力逐步提升。
- 道具与技能系统:包含护盾、减速、双倍分、加速道具,以及双击屏幕释放的主动技能。
- Web Audio 音效:使用 Web Audio API 生成背景低频、旋律、碰撞、拾取、连击和 UI 音效。
- AI 结算嘲讽:游戏结束时可调用外部 AI 接口生成冷酷赛博风格嘲讽;未配置接口时自动使用本地备用文案。
- 本地记录:使用
localStorage保存黑客代号、历史最高分、排行榜和成就。
- 用手机打开游戏页面。
- 点击 授权陀螺仪并开始。
- 左右倾斜手机控制蓝色数据球沿外围轨道移动。
- 躲避从隧道深处逼近的红色防火墙。
- 收集道具、保持连击、尽可能存活更久。
游戏中会显示技能冷却状态:
- 双击屏幕释放技能「防火墙干扰」
- 效果:清空近距离威胁,并获得 0.8 秒无敌
- 冷却:5 秒
| 道具 | 效果 |
|---|---|
蓝色圆圈 S |
护盾,抵挡一次碰撞 |
橙色圆圈 T |
减速,短时间降低障碍物速度 |
粉色圆圈 2x |
双倍分,短时间提高得分 |
金色星星 ★ |
加速道具,集满 5 个触发 RUSH 模式 |
- 成功躲避障碍物会获得分数。
- 连击越高,躲避得分越高。
- 存活时间越久,基础得分越高。
- 输入的黑客代号会出现在结算报告和本地排行榜中。
index.html 中预留了三个常量:
const AI_API_URL = 'YOUR_API_URL_HERE';
const AI_API_TOKEN = 'YOUR_BEARER_TOKEN_HERE';
const AI_MODEL = 'YOUR_MODEL_HERE';配置后,游戏结束时会向接口发送玩家代号和存活时长,请求生成一段中文赛博主脑嘲讽文案。
如果接口不可用、未配置或请求失败,游戏会自动回退到本地备用嘲讽文案,不影响主流程。
.
├── index.html # 游戏主体:HTML、CSS、Canvas 渲染、玩法逻辑、音效、AI 请求
└── README.md # 项目说明
游戏以手机为主要目标设备,Canvas 渲染已做移动端降级:
- 限制移动端 Canvas DPR,避免高分屏导致渲染面积过大。
- 手机端关闭昂贵的
backdrop-filter。 - 开始界面在手机端避免持续高频重绘。
- 背景粒子、速度线、阴影和区域几何在手机端使用轻量版本。
如果某些低端机型仍然卡顿,可以继续降低背景元素数量,或将运行帧率固定到 30fps。
- 推荐使用最新版移动端 Safari、Chrome 或 Chromium 系浏览器。
- iOS 13+ 需要用户主动点击按钮后才允许请求陀螺仪权限。
- 不支持方向传感器的设备仍可进入游戏,但重力控制体验会受限。
游戏会在本地浏览器中保存以下信息:
cyber_alias:黑客代号cyber_highscore:历史最高分cyber_leaderboard:本地排行榜cyber_achievements:成就记录cyber_played:是否已经显示过首次教学
这些数据只保存在当前浏览器本地,清除浏览器数据后会被删除。