一款基于微信小游戏原生 Canvas 2D 开发的水果主题 2048。项目包含完整的滑动合成规则、动画反馈、音效与振动控制、本地最高分保存和多尺寸屏幕适配,现已作为微信小游戏正式发布。
本仓库用于作品展示与招聘评估,不提供小程序二维码,也不包含线上项目的真实 AppID。
- 4 × 4 水果合成棋盘与标准 2048 合并规则
- 上、下、左、右四向滑动与连续输入队列
- 移动、合并和新水果生成动画
- 当前分数与本地历史最高分
- 新游戏、游戏结束与重新开始流程
- 五类事件音效及音效开关
- 短振动、组合振动与强振动反馈
- 手机和平板响应式布局
- 微信胶囊按钮和安全区域避让
- 前后台切换及窗口尺寸变化后的画面恢复
- 微信好友与朋友圈分享入口
- 运行平台: 微信小游戏
- 渲染方式: 原生 Canvas 2D
- 开发语言: JavaScript(CommonJS 模块)
- 状态存储: 微信小游戏本地存储 API
- 交互方式: 原生触摸事件与方向队列
- 外部依赖: 无运行时第三方框架
项目将游戏逻辑、动画、渲染、输入、反馈、设置和布局拆分为独立模块。入口文件负责生命周期与模块协作,游戏规则不依赖界面绘制,便于维护和继续扩展。
fruit-2048/
├─ audio/ # 程序化生成的游戏音效
├─ docs/
│ ├─ AUDIO_PROVENANCE.md # 音效来源与文件校验记录
│ └─ screenshots/ # README 展示截图
├─ js/
│ ├─ animation.js # 动画状态与过渡控制
│ ├─ config.js # 棋盘、水果与动画配置
│ ├─ feedback.js # 音效与振动反馈
│ ├─ gameLogic.js # 2048 核心规则
│ ├─ input.js # 连续滑动输入队列
│ ├─ layout.js # 响应式布局计算
│ ├─ renderer.js # Canvas 2D 绘制
│ └─ settings.js # 设置面板状态
├─ game.js # 微信小游戏入口
├─ game.json # 运行配置
├─ project.config.json # 脱敏后的开发者工具配置
├─ COPYRIGHT.md # 展示用途与版权声明
└─ README.md
- 安装并打开微信开发者工具。
- 选择“小游戏”项目并导入本仓库目录。
- 使用测试号运行,或在你有权使用的项目中填写自己的 AppID。
- 编译后即可在模拟器或真机上体验。
公开版本的 project.config.json 使用 touristappid,不包含已发布小游戏的真实项目标识。project.private.config.json 属于开发者工具生成的个人配置,不纳入仓库。
仓库中的五段 WAV 音效由 ChatGPT 辅助程序化生成,用于移动、合并、生成、按钮与游戏结束反馈。生成记录、音频参数和 SHA-256 校验值见 音效来源说明。
Copyright © 2026 862OvO. All rights reserved.
本项目未采用开源许可证,仅供作品展示、学习参考及招聘评估。未经作者书面许可,不得复制、修改、分发、再发布或用于商业用途。详细说明见 COPYRIGHT.md。


