这是一个功能完整、体验出色的经典坦克大战游戏,使用纯HTML5 Canvas和原生JavaScript构建。
- 流畅的坦克控制:WASD/方向键移动,空格键射击
- 智能敌人AI:敌人会追踪玩家并智能攻击
- 物理碰撞检测:精确的子弹与坦克碰撞
- 关卡系统:5个独特设计的关卡,难度递增
- 砖墙:可以被子弹摧毁
- 钢墙:坚不可摧的障碍物
- 水域:装饰性地形
- 基地:需要保护的核心目标
- 🛡️ 护盾:抵挡一次伤害
- ⚡ 加速:移动速度提升50%
- 🔥 快速射击:射击冷却时间减半
- ❤️ 生命:额外增加一条生命
- 粒子爆炸:华丽的爆炸特效
- 发光子弹:带有光晕和尾迹的子弹
- 炮塔旋转:坦克炮塔根据方向旋转
- 护盾效果:脉冲式护盾视觉反馈
- 现代UI:渐变色、毛玻璃效果、流畅动画
- 射击音效
- 爆炸音效
- 拾取道具音效
- 可切换静音
- 首次击杀:击杀第一个敌人
- 神枪手:单局击杀10个敌人
- 生存专家:不损失生命通过一关
- 速度之王:60秒内完成一关
- 不死之身:使用护盾抵挡5次攻击
- 破坏者:摧毁100个砖块
- 老兵:累计击杀100个敌人
- 坦克大师:通过第5关
- 收藏家:拾取20个道具
- 完美战斗:获得10000分
- 击杀数统计
- 准确率计算
- K/D比率
- 最高分记录
- 游戏时长追踪
- 本地存储保存
- 移动:
WASD或 方向键 - 射击:
空格键 - 暂停:
P或ESC
- 摧毁所有敌方坦克
- 保护基地不被摧毁
- 尽可能获得高分
- 解锁所有成就
tank-battle.html # 主HTML文件
src/js/tank-game/
├── game-enhanced.js # 游戏主引擎
└── achievements.js # 成就系统
- 关卡地图生成和管理
- 5种不同的关卡布局
- 瓦片系统(空地、砖墙、钢墙、水域、基地)
- 碰撞检测
- 玩家和敌人坦克
- 移动和射击逻辑
- 道具效果管理
- AI系统(敌人)
- 子弹物理
- 碰撞检测
- 视觉效果
- 道具生成和拾取
- 效果持续时间
- 闪烁动画
- 粒子系统
- 爆炸特效
- 物理模拟
- 主游戏循环
- 游戏状态管理
- 关卡进度
- 分数系统
- 组件化设计:每个游戏对象都是独立的类
- 事件驱动:使用回调函数更新UI
- 状态管理:集中管理游戏状态
- 工厂模式:地图和关卡生成
- 深色主题:护眼的暗色背景
- 渐变色:丰富的颜色过渡
- 毛玻璃效果:backdrop-filter模糊
- 流畅动画:CSS transitions和animations
- 响应式布局:适配各种屏幕尺寸
- 主背景:
#0a0e1a - 强调色:
#ff6b35/#f7931e - 成功色:
#4ecdc4 - 危险色:
#ff3864 - 文本色:
#ffffff/#a0aec0
- 使用
requestAnimationFrame实现流畅动画 - 固定时间步长物理更新
- Canvas状态保存和恢复
- 只绘制可见对象
- 对象池模式(可扩展)
- 及时清理死亡对象
- 事件监听器正确移除
- AABB(轴对齐包围盒)检测
- 分层碰撞检查
- 空间分区(可扩展)
- 关卡1:简单布局,熟悉操作
- 关卡2:迷宫式,考验走位
- 关卡3:堡垒式,需要策略
- 关卡4:河流地形,限制移动
- 关卡5:混乱战场,终极挑战
- 击杀敌人:+100分
- 完成关卡:+1000分
- 基地被毁:-500分
- 每关20个敌人
- 同时最多4个敌人在场
- 每3秒生成一个新敌人
- 15%概率掉落道具
- 新道具类型:在PowerUp类中添加
- 新地图:在GameMap中添加generateLevel方法
- 新敌人类型:扩展Tank类
- 新武器:创建新的子弹类型
- 新成就:在AchievementManager中定义
所有游戏参数都在 CONFIG 对象中定义,便于调整:
- 坦克速度
- 射击冷却
- 敌人数量
- 道具效果
- 粒子参数
- ✅ Chrome 90+
- ✅ Firefox 88+
- ✅ Safari 14+
- ✅ Edge 90+
- Canvas 2D Context
- Web Audio API
- LocalStorage
- RequestAnimationFrame
- ES6+ (类、箭头函数、模板字符串等)
- ✅ 模块化代码结构
- ✅ 清晰的命名约定
- ✅ 详细的代码注释
- ✅ 一致的代码风格
- ✅ 错误处理
- ✅ 性能考虑
- 单一职责原则
- 低耦合高内聚
- 易于测试的设计
- 文档完善
当前版本没有已知的严重bug,但有一些可以改进的地方:
- 敌人AI可以更智能(A*寻路)
- 可以添加更多音效
- 可以添加更多粒子效果
- 移动端触摸控制
- ✨ 完整的游戏核心功能
- ✨ 5个精心设计的关卡
- ✨ 道具系统(4种道具)
- ✨ 粒子爆炸效果
- ✨ 音效系统
- ✨ 成就系统(10个成就)
- ✨ 统计追踪
- ✨ 本地存储
- ✨ 现代UI设计
- ✨ 响应式布局
这是DemoCodex项目的一部分,遵循项目的协作指南:
- 保持代码模块化
- 使用语义化HTML
- CSS使用BEM命名
- JavaScript保持单一职责
- 支持键盘操作
- 考虑可访问性
MIT License - 自由使用和修改
灵感来源于经典的FC坦克大战游戏,使用现代Web技术重新打造。
享受游戏!祝你玩得开心! 🎮✨