# mini-games **Repository Path**: jht7702/mini-games ## Basic Information - **Project Name**: mini-games - **Description**: 纯前端小游戏合集 · 打开即玩 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-09-02 - **Last Updated**: 2026-09-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 小游戏合集 · Mini Games 一个纯前端小游戏的专用开发项目。所有游戏都是**零依赖的单页 HTML**,双击即可运行,不需要构建、不需要安装任何东西。 **开源协议:Apache License 2.0** - 项目首页(游戏大厅):[`index.html`](./index.html) - 游戏目录:[`games/`](./games) ## 游戏列表 | 游戏 | 目录 | 类型 | 收录日期 | | --- | --- | --- | --- | | [坦克大战 · Battle City 复刻](./games/tank-war/index.html) | `games/tank-war` | 射击 / 经典 / 双人 | 2026-09-02 | | [俄罗斯方块 · 复刻版](./games/tetris/index.html) | `games/tetris` | 益智 / 经典 | 2026-09-02 | | [飞机大战 · 复刻版](./games/plane-war/index.html) | `games/plane-war` | 射击 / 休闲 | 2026-09-02 | | [沙罗曼蛇 · 复刻版](./games/salamander/index.html) | `games/salamander` | 射击 / 经典 | 2026-09-03 | | [超级马力欧兄弟 · 复刻版](./games/super-mario-bros/index.html) | `games/super-mario-bros` | 动作 / 经典 | 2026-09-02 | | [魂斗罗 · 复刻版](./games/contra/index.html) | `games/contra` | 射击 / 动作 / 双人 | 2026-09-03 | | [街头霸王 · 复刻版](./games/street-fighter/index.html) | `games/street-fighter` | 格斗 / 经典 / 双人 | 2026-09-03 | | [经典彩色打飞机](./games/plane-shooter/index.html) | `games/plane-shooter` | 射击 / 弹幕 | 2026-09-23 | ## 目录结构 ``` mini-games/ ├── index.html # 游戏大厅,自动读取游戏清单并生成卡片 ├── games/ │ ├── games.js # 游戏清单(唯一需要手动维护的注册表) │ ├── tank-war/ # 经典坦克大战(含 about.txt 调研资料) │ │ └── index.html │ ├── plane-war/ # 经典飞机大战 │ │ └── index.html │ ├── tetris/ # 经典俄罗斯方块 │ │ └── index.html │ ├── salamander/ # 沙罗曼蛇 │ │ └── index.html │ ├── super-mario-bros/ # 超级马力欧兄弟 │ │ └── index.html │ └── contra/ # 魂斗罗 │ │ └── index.html │ └── street-fighter/ # 街头霸王 │ ├── index.html │ └── sprites/ryu/ # 逐动作帧 GIF(来自 AlloyTeam/StreetFighter 切片) │ └── plane-shooter/ # 经典彩色打飞机(另含 specs/ 规格与 smoke-test) │ └── index.html │ └── / # 之后的新游戏都放这里 │ └── index.html ├── scripts/ │ └── pr.ps1 # 一键建分支、提交、推送并开 PR ├── CONTRIBUTING.md # 开发与 PR 流程 ├── LICENSE # Apache License 2.0 ├── .gitignore └── README.md ``` ## 开发流程 默认**小改动直接提交到 `main`**;新增游戏、重构等大改动才走 Pull Request。详见 [CONTRIBUTING.md](./CONTRIBUTING.md)。 ```powershell git add -A git commit -m "feat(snake): 新增贪吃蛇" git push ``` ## 怎么玩 直接双击 `index.html` 或任意游戏的 `index.html` 用浏览器打开即可。 如果想用本地服务器预览(推荐,避免个别浏览器的 `file://` 限制): ```powershell cd e:\mini-games python -m http.server 8000 # 浏览器打开 http://localhost:8000 ``` ## 新增一个游戏 1. 在 `games/` 下新建目录,目录名用英文小写加连字符,例如 `games/snake/`。 2. 入口文件**统一命名为 `index.html`**,游戏所需的图片、音频等资源放在同一目录内,使用相对路径引用。 3. 在 [`games/games.js`](./games/games.js) 的数组里追加一条记录: ```js { id: 'snake', name: '贪吃蛇', path: 'games/snake/index.html', cover: '', // 可选,封面图路径,留空则显示首字占位 desc: '一句话介绍这个游戏。', tags: ['益智', 'Canvas'], date: '2026-09-02' } ``` 4. 在本文件顶部的「游戏列表」表格里补一行。 5. 提交并推送: ```bash git add -A git commit -m "feat(snake): 新增贪吃蛇" git push ``` 游戏大厅首页会按 `date` 倒序自动展示,不需要改动 `index.html`。 ## 约定 - 单文件优先:一个游戏一个目录,入口固定为 `index.html`,尽量不引入外部依赖。 - 中文界面:面向中文用户,UI 文案使用简体中文。 - 提交信息格式:`(<游戏 id>): <描述>`,例如 `feat(plane-war): 新增双发子弹`。 ## 开源协议 本项目整体采用 [Apache License 2.0](./LICENSE),版权归 jht7702 所有。 - 可自由使用、复制、修改、合并、发布、分发、再许可和售卖副本,包括商业用途 - 分发时必须保留本协议副本,并保留源码中的版权、专利、商标与归属声明 - 修改过的文件需显著标注改动说明 - 按"原样"提供,不含任何明示或暗示的担保,作者不承担使用产生的责任 - 不授予使用作者商标、商号的权利 游戏内容均为原创实现:图形用 Canvas 绘制,音效用 Web Audio 实时合成,因此不存在额外的素材授权问题。《街头霸王》为例外,其角色动作帧使用了开源的第三方 GIF 切片(见上方说明),仅作学习复刻之用。 ## 已有游戏说明 ### 坦克大战 · Battle City 复刻 FC 红白机(Namco 1985)经典坦克大战的单文件复刻,像素美术与音效均为原创程序化实现。 - 操作:方向键移动,J/空格开火,Enter START,M 菜单选择,P 暂停;2P 用 WASD + F/G - 机制:6 种地形(红砖可逐层打穿、钢板、河流、森林、冰原打滑)、4 型敌军坦克、4 级我方升级、6 种道具(星/手榴弹/钢盔/铁锹/加命/时计) - 玩法:打掉 20 辆敌军过关,守护鹰标基地;炮弹互抵消、友军火力会冻结队友 - 模式:单人 / 双人协力 / 选关(1~35)/ 关卡编辑器(CONSTRUCTION) - 其他:原版第 1 关网格数据直接采用;关卡编辑器存档到 `localStorage`;`about.txt` 为调研资料 - 说明:程序由社区 AI 生成后经本地集成,详见 `games/tank-war/about.txt` ### 俄罗斯方块 · 复刻版 复刻经典的 10×20 方块下落消除游戏。 - 操作:← → 移动,↑/X 顺转,Z 逆转,↓ 软降,空格 硬降,C 暂存,P 暂停 - 方块:标准七巧块,7-bag 随机发牌保证公平,带幽灵落点投影 - 规则:经典计分(单消 100×等级起,四连消 800×等级),每消 10 行升一级、下落加快 - 手感:0.45s 锁定延迟 + 踢墙旋转,可及时救回触底方块 - 触屏:底部虚拟按键 + 滑动手势(左右移、上滑旋转、下滑软降) - 其他:Web Audio 实时合成音效;最高分保存在 `localStorage` ### 飞机大战 · 复刻版 纸面手绘线稿风格的纵版射击游戏。 - 操作:拖动鼠标或手指控制战机,自动开火 - 玩法:一命制,撞到任意敌机即结束 - 敌机:小型(1 分)/中型(4 分)/大型(12 分),大、中型带血条 - 难度:随存活时间提升,出怪间隔缩短、速度提升 - 其他:Web Audio 实时合成音效,无需音频素材;最高分保存在 `localStorage` ### 沙罗曼蛇 · 复刻版 《宇宙巡航舰》系列的衍生作品,Konami 1986 年街机 / 1987 年 FC 红白机经典纵版射击游戏复刻。 - 操作:方向键移动,自动开火,Enter 开始,ESC 返回 - 战机:1P Vic Viper(维克毒蛇,蓝白色),2P Lord British(帝国勋爵,红色) - 武器:胶囊升级系统(速度/导弹/双发/激光/分身/护盾),最多 Lv.3 - 关卡:3 关主题(深入敌营 / 火海星云 / 外星母星),含 3 个 Boss(格雷姆 / 魔龙侵入者 / 最终核心) - 彩蛋:FC 版科乐美秘技(↑↑↓↓←→←→BA)输入后获得 30 命 - 其他:Web Audio 实时合成音效;最高分保存在 `localStorage` ### 超级马力欧兄弟 · 复刻版 小霸王(FC/NES)时代的超级玛丽单文件复刻,256×240 逻辑分辨率与原版一致,像素美术与音效均为原创程序化实现。 - 操作:← → / A D 移动,Z / 空格 / ↑ 跳跃,X / Shift 加速并发射火球,↓ / S 下蹲与进水管,Enter / P 开始暂停,R 重开本关 - 道具:蘑菇变大、火力花获得火球、无敌星限时无敌 - 关卡:8 世界 × 4 关卡,含地面、地下、水下、城堡四种主题,由段落 DSL 程序化生成 - 玩法:顶砖块吃金币、踩敌人连击、集满 100 金币加命,跳旗杆结算高分;城堡关斩断吊桥击败库巴 - 其他:Web Audio 实时合成音效与背景音乐;底部虚拟按键支持触屏;工具栏可切换音效与全屏 - 说明:程序由社区 AI 生成后经本地集成 ### 魂斗罗 · 复刻版 小霸王(FC/NES)时代最火的清版射击游戏,Konami 1987 年街机 / 1988 年 FC 红白机经典复刻,256×240 逻辑分辨率,像素美术与音效均为原创程序化实现。 - 操作:方向键移动,Z / J 跳跃,X / K 开火(按住走、上瞄、下趴后仰射),Enter 开始,P 暂停,R 重开 - 双打:1P 方向键 + ZJXK,2P WASD + 小键盘 8456(移动)+ 逗号(,)/(.)/(/) 跳/开火 - 战士:比尔(红)与兰斯(蓝),8 向跳射,跳跃中可自由调整射击角度 - 武器:散弹枪(S)/ 激光枪(L)/ 火焰枪(F)/ 导弹枪(M)/ 机关枪(G),拾取胶囊随机或指定 - 关卡:8 关,含横向、纵向、纵深伪 3D 三种卷轴——丛林、基地 ×2、瀑布、雪原、能量地带、机库、异形巢穴 - Boss:激震炮垒、独眼巨人、异形头骨、要塞核心、雪地炮舰、巨大机器人、机库防线、天王鬼 - 彩蛋:标题画面输入科乐美秘技 ↑↑↓↓←→←→B A 获得 30 命 - 触屏:底部虚拟手柄(移动摇杆 / 跳 / 开火 / 瞄准) - 其他:Web Audio 实时合成音效;工具栏可切换音效与全屏;通关有结局画面 ### 街头霸王 · 复刻版 小霸王(FC/街机)时代的经典格斗游戏单文件复刻,题材取自 CAPCOM《Street Fighter》,画面用 AlloyTeam/StreetFighter 的逐动作帧 GIF 切片,逻辑用 Canvas 实时绘制。 - 模式:1P 对战 CPU / 双人对战,先胜 2 回合者赢 - 1P 操作:`A`/`D`(或 `←`/`→`)左右移动(按住与对手相反方向即"拉后防御"),`W`/`↑` 跳,`J`/`U` 拳,`K`/`I` 脚 - 2P 操作:方向键移动,`U` 拳、`I` 脚 - 必杀:波动拳 `S → D → J`,升龙拳 `D → S → J`(输入序列在 250–300ms 内有效) - 机制:拉后防御(可挡下正面攻击并触发防御硬直)、血量条、回合结算 - 其他:敌方为 AI 控制的红色 Ryu(当作 Ken),Web Audio 实时合成音效 > 素材说明:本游戏的角色动作帧为 `sprites/ryu/*.gif`,源自已开源的 [AlloyTeam/StreetFighter](https://github.com/AlloyTeam/StreetFighter) 切片,仅作学习复刻之用。 ### 经典彩色打飞机 3 关递增难度的竖版弹幕射击游戏,零外部资源(图形用 Canvas 绘制、音效用 Web Audio 实时合成)。 - 操作:拖动鼠标或手指操控战机,自动开火;桌面端另支持方向键 / WASD - 玩法:3 条命起(上限 5),受击 1 秒无敌帧,护盾优先抵消;连击加分(最高 3 倍) - 关卡:3 关难度递增(普通机 12 / 20 / 30 架),每关末尾挑战「曼陀罗蛇」Boss - Boss:三形态弹幕状态机(环形 / 螺旋 / 扇形),赤 · 幽蓝 · 黄金母皇三阶 - 道具:火力二连、火力三连、护盾、全屏炸弹、加命 - 其他:三层视差星空、粒子爆炸与屏震、最高分保存在 `localStorage` - 说明:采用 spec 驱动开发,设计规格见 `games/plane-shooter/specs/`;代码为 `js/` 下 18 个模块,另附 `smoke-test*.js` Node 冒烟测试