IT技术之家 游戏竞技 坦克大战 — 双人合作网页游戏,一款纯 HTML5 打造的经典坦克大战复刻,支持双人、蓝牙手柄和触屏操控

    坦克大战 — 双人合作网页游戏,一款纯 HTML5 打造的经典坦克大战复刻,支持双人、蓝牙手柄和触屏操控

    🚀 快速体验: 用浏览器打开 tank-battle.html 即可开始游戏,无需安装任何依赖。

    闲着无聊想玩坦克大战,结果网上那些在线版全都不支持手柄。一气之下让 AI 写了一个,效果意外地不错,特分享出来。

    ✨ 游戏特色

    👥
    双人合作
    两名玩家同屏协作,共同消灭敌人
    🎮
    蓝牙手柄
    即插即用,支持双摇杆操控
    ⌨️
    键盘操控
    经典 WASD + 方向键
    📱
    触屏摇杆
    手机端虚拟摇杆 + 射击按钮
    🤖
    智能AI
    敌人随机巡逻+概率追踪玩家
    💥
    粒子特效
    爆炸烟雾、碎片、屏幕震动
    🎁
    道具系统
    6种道具,掉落率随关卡递增
    🎨
    霓虹风格
    科幻视觉风格,光晕特效
    ❄️
    特殊地形
    冰面滑行、传送门、湖泊、草丛
    👥
    分身克隆
    拾取道具召唤2辆AI坦克助战
    🏆
    9大关卡
    从入门到终极炼狱,难度递增
    📂
    模块化
    HTML/CSS/JS 分离,易于修改

    🎯 操控方式

    ⌨️ 键盘(桌面端)

    玩家 移动 射击
    P1(绿色坦克) W A S D 空格F
    P2(蓝色坦克) ↑ ↓ ← → 回车/

    🎮 蓝牙手柄

    操作 按键
    移动 左摇杆 / 十字键 (D-Pad)
    射击 A 键 / R1 (右肩键) / RT (右扳机)
    开始/确认 Start

    手柄1 自动映射到 P1,手柄2 自动映射到 P2。HUD 上会显示 🎮 图标表示已连接。

    📱 触屏(手机/平板)

    • 左下摇杆:拖拽控制 P1 移动方向
    • 左下射击按钮:按住持续射击
    • 右下摇杆:拖拽控制 P2 移动方向
    • 右下射击按钮:按住持续射击

    🎯 游戏玩法

    目标

    双人合作消灭关卡中所有敌方坦克,同时保护地图底部的基地(鹰)不被摧毁。

    胜负条件

    • ✅ 过关:消灭所有敌方坦克
    • ❌ 失败:基地被摧毁 或 两名玩家生命全部耗尽

    生命系统

    每名玩家初始有 3 条命。被击中后短暂无敌并重生在出生点。拾取 ❤️ 道具可增加生命(最多 5 条)。

    🗺️ 地图元素

    元素 图标 说明
    砖墙 🧱 可被子弹摧毁,提供临时掩护
    钢墙 不可摧毁,永久的战略掩体
    水域 🌊 坦克无法通过,但子弹可以飞过
    树林 🌳 坦克可以通过,但会遮挡视野(半透明渲染)
    基地 🦅 必须保护的核心目标,被击中即游戏结束
    湖泊 🏞️ 深水区域,不可通过,有睡莲装饰
    草丛 🌿 可通过,半透明遮挡视野(掩护效果)
    冰面 ❄️ 可通过,但坦克会自动滑行(速度+30%),无法转向
    传送门 🌀 进入后瞬间传送到配对传送门,30帧冷却

    🎁 道具系统

    消灭敌人有概率掉落道具(20% + 5%×关卡数,第6关可达50%),拾取后立即生效:

    道具 图标 效果
    武器升级 金色五角星 提升射击等级:Lv1 加快射速,Lv2 三连发
    💣 全屏炸弹 炸弹+引线 瞬间摧毁场上所有敌方坦克
    🛡️ 无敌护盾 蓝色盾牌 获得 300 帧(约5秒)无敌时间
    ❤️ 额外生命 红色爱心 增加一条命(最多 5 条)
    时间冻结 青色时钟 所有敌人移动速度大幅降低,持续 5 秒
    👥 克隆分身 橙色双坦克 召唤2辆橙色AI坦克,自动追踪攻击敌人,8秒后消失

    🏆 关卡设计

    游戏内置 9 个关卡,难度递增:

    关卡 敌人 主题 特点
    第 1 关 6 经典布局 对称地图,适合熟悉操作
    第 2 关 8 钢墙训练 更多钢墙,考验战术配合
    第 3 关 10 复杂地形 砖墙+钢墙混合,敌人更密集
    第 4 关 14 ❄️ 冰原迷踪 冰面滑行+传送门,首次引入特殊地形
    第 5 关 16 🌿 丛林沼泽 湖泊+草丛+冰+传送门混搭
    第 6 关 18 💀 终极战场 全部地形类型,密集敌人
    第 7 关 20 🧱 砖墙迷宫 全砖墙构成迷宫,留出狭窄通道
    第 8 关 22 🏰 钢铁堡垒 大面积砖墙+钢墙交错,需绕路
    第 9 关 24 🔥 终极炼狱 砖墙+钢墙混合,最密集敌人,极限挑战

    通关所有关卡后显示「ALL CLEAR!」胜利画面。

    🔧 技术实现

    技术栈

    • 纯前端:HTML5 + CSS3 + JavaScript(零依赖)
    • 渲染引擎:Canvas 2D API,60fps requestAnimationFrame 循环
    • 手柄支持:Web Gamepad API(navigator.getGamepads()
    • 音效:Web Audio API 实时合成(无需音频文件)
    • 碰撞检测:四角点采样 + AABB 矩形碰撞

    核心架构

    项目结构(3个文件)
    ├── tank-battle.html   — HTML 壳,引入 CSS 和 JS
    ├── tank-battle.css    — 霓虹主题、摇杆布局、响应式样式
    └── tank-battle.js     — 全部游戏逻辑
    
    JS 模块划分
    ├── 游戏常量           — 地图尺寸、瓦片类型(10种)、方向向量
    ├── 关卡数据           — 9 个 20×15 网格地图
    ├── Tank 类            — 玩家/敌人/分身坦克,冰面滑行,传送门
    ├── Bullet 类          — 子弹物理、拖尾、碰撞检测
    ├── 粒子系统           — 爆炸、碎片、火花特效
    ├── 敌方 AI            — 随机巡逻 + 概率追踪玩家
    ├── 分身 AI            — 自动追踪最近敌人并射击
    ├── 冰面/传送系统      — 滑行物理 + 传送门配对
    ├── 输入处理           — 键盘/手柄/触屏三合一
    ├── 游戏循环           — update() + render() 60fps
    └── 道具系统           — 6 种道具,掉落率20%+5%×关卡
    

    Gamepad 按键映射

    标准按键 索引 功能
    A 键 (底部) buttons[0] 射击
    R1 (右肩键) buttons[5] 射击
    RT (右扳机) buttons[7] 射击
    Start buttons[9] 开始/确认
    左摇杆 X axes[0] 水平移动
    左摇杆 Y axes[1] 垂直移动
    十字键 ↑↓←→ buttons[12-15] 方向移动

    📥 安装与运行

    方式一:直接打开(推荐)

    1. 下载 tank-battle.htmltank-battle.csstank-battle.js 三个文件放在同一目录
    2. 用任意现代浏览器(Chrome / Edge / Firefox / Safari)打开 tank-battle.html
    3. 即可开始游戏!

    方式二:部署到服务器

    # 将文件放到任意 Web 服务器目录即可
    # 例如 Nginx、Apache、GitHub Pages、Vercel、Netlify 等
    
    💡 提示: 蓝牙手柄需要在 HTTPS 或 localhost 环境下才能被 Gamepad API 检测到。如果直接打开 HTML 文件,部分浏览器可能限制手柄访问。

    浏览器兼容性

    浏览器 最低版本 手柄支持
    Chrome 80+ ✅ 完整
    Edge 80+ ✅ 完整
    Firefox 75+ ✅ 完整
    Safari 13+ ⚠️ 部分支持
    移动端浏览器 最新版 ✅ 触屏操控

    ❓ 常见问题

    Q: 手柄连接了但没反应?
    A: 确保在 HTTPS 或 localhost 环境下运行。按一下手柄上的任意按键激活连接,刷新页面后重试。

    Q: 敌人不出来?
    A: 已修复。敌人会在第一关开始后约 2 秒从地图顶部三个位置出生。

    Q: 冰面怎么玩?
    A: 坦克进入冰面后会自动滑行,速度+30%且无法转向。利用这一点可以快速穿越危险区域,但注意别滑进敌人火力中。

    Q: 传送门怎么用?
    A: 走进紫色漩涡即可传送到配对传送门。有30帧冷却时间,适合快速转移或逃脱。

    Q: 克隆分身有什么作用?
    A: 拾取橙色👥道具后,身旁生成2辆AI坦克,自动追踪敌人射击,8秒后消失。分身不会阻挡玩家移动。

    Q: 可以单人玩吗?
    A: 可以,P1 使用键盘/手柄独自作战即可。P2 不动也不会影响游戏。

    Q: 如何修改关卡?
    A: 编辑 LEVELS 数组,每个关卡是一个 20×15 的二维数组。数字含义:0=空地, 1=砖墙, 2=钢墙, 3=水域, 4=树林, 5=基地。

    Q: 支持 Xbox / PS / Switch 手柄吗?
    A: 只要是标准蓝牙手柄,浏览器能识别为 Gamepad 设备即可。Xbox 和 PS 手柄测试通过,Switch Pro 手柄也可用。

    🚀 快速体验:

    用浏览器打开 tank-battle.html 即可开始游戏,无需安装任何依赖。

    离线版:

    本作品采用 CC0 1.0 通用 (Creative Commons Zero) 协议发布。
    在法律允许的范围内,作者已将该作品贡献至公共领域,放弃所有版权及相关权利。
    guest
    0 评论
    内联反馈
    查看所有评论
    联系我们

    联系我们

    QQ:877196754

    在线咨询: QQ交谈

    邮箱: ittel@qq.com

    工作时间:周一至周日,8:00-21:00
    返回顶部
    0
    希望看到您的想法,请您发表评论x