# LineFunQueue 微信小程序客户端 ## 项目简介 LineFunQueue是一款面向排队场景的微信小程序,提供多种互动小游戏,帮助用户在排队等待过程中消遣时间、增进社交互动。 产品采用"轻交互、重线下沟通"理念,鼓励用户在现实场景中进行面对面互动。主要游戏包括"海龟汤"等解谜类游戏,由主持人引导玩家参与。 ## 技术架构 - 前端框架:Taro 4.x + React + TypeScript - 构建工具:Vite - CSS预处理器:Sass - 状态管理:React Hooks - 接口请求:Taro.request - 云开发:微信云开发、云函数 ## 目录结构 ``` client/ ├── config/ # 项目配置文件 ├── src/ # 源代码 │ ├── app.config.ts # 应用配置 │ ├── app.scss # 全局样式 │ ├── app.ts # 应用入口 │ ├── index.html # HTML模板 │ ├── assets/ # 静态资源 │ ├── components/ # 通用组件 │ │ ├── base/ # 基础组件 │ │ ├── game/ # 游戏相关组件 │ │ └── room/ # 房间相关组件 │ ├── constants/ # 常量定义 │ ├── hooks/ # 自定义Hooks │ ├── interfaces/ # 类型定义 │ ├── pages/ # 页面 │ │ ├── game-plaza/ # 游戏广场 │ │ ├── login/ # 登录页 │ │ ├── game-detail/ # 游戏详情页 │ │ ├── room/ # 房间页面 │ │ │ ├── create/ # 创建房间 │ │ │ └── join/ # 加入房间 │ │ ├── games/ # 游戏页面 │ │ │ └── turtle-soup/ # 海龟汤游戏 │ │ │ ├── host/ # 主持人视图 │ │ │ └── player/ # 玩家视图 │ │ └── profile/ # 个人中心 │ ├── services/ # 服务 │ │ ├── api.ts # API接口 │ │ ├── cloud.ts # 云开发服务 │ │ └── game.ts # 游戏服务 │ ├── store/ # 状态管理 │ ├── styles/ # 样式文件 │ └── utils/ # 工具函数 └── package.json # 依赖配置 ``` ## 主要功能 1. 游戏广场:浏览可玩游戏列表,支持分类和搜索 2. 创建房间:主持人创建游戏房间,设置游戏参数 3. 加入房间:玩家通过房间码加入游戏 4. 等待房间:展示房间信息和已加入玩家,设置游戏配置 5. 游戏进行:主持人和玩家各自有不同的游戏界面和交互方式 6. 游戏历史:查看历史游戏记录 7. 个人中心:用户信息管理 ## 关键组件 1. `GameCard`:游戏卡片组件,用于展示游戏缩略信息 2. `Button`:自定义按钮组件,支持多种样式和状态 3. `RoomCodeInput`:房间码输入组件,提供直观的输入体验 4. `PlayerAvatar`:玩家头像组件,展示玩家状态和角色 ## 页面说明 ### 游戏广场 - 功能:展示全部游戏,支持分类筛选和搜索 - 技术要点:使用ScrollView实现横向分类Tab和纵向游戏列表,下拉刷新 ### 游戏详情 - 功能:展示游戏详细信息,包括规则、所需人数、预计时长等 - 技术要点:支持创建房间和分享 ### 创建房间 - 功能:主持人创建游戏房间,设置游戏参数 - 技术要点:表单验证,主题和难度选择 ### 加入房间 - 功能:玩家通过房间码加入游戏 - 技术要点:自定义房间码输入组件,扫码加入 ### 等待房间 - 功能:展示已加入玩家,进行游戏准备 - 技术要点:房间信息实时更新,准备状态同步 ### 游戏页面 - 功能:根据不同游戏类型和角色提供不同的游戏体验 - 技术要点:主持人和玩家视图分离,游戏状态管理 ## 开发指南 ### 环境准备 1. Node.js v16+ 2. pnpm 8+ 3. 微信开发者工具 ### 安装依赖 ```bash pnpm install ``` ### 开发模式 ```bash # 微信小程序 pnpm dev:weapp ``` ### 生产构建 ```bash pnpm build:weapp ``` ### 开发新组件 1. 在 `src/components` 目录下创建组件文件夹 2. 创建 `index.tsx` 和 `index.scss` 文件 3. 导出组件并在需要的地方引用 ### 开发新页面 1. 在 `src/pages` 目录下创建页面文件夹 2. 创建 `index.tsx`、`index.scss` 和 `index.config.ts` 文件 3. 在 `app.config.ts` 中添加页面路径 ## 注意事项 1. API接口地址需要在开发环境和生产环境分别配置 2. 云开发环境ID需要替换为实际项目的环境ID 3. 微信开发者工具中需要开启ES6转ES5、增强编译等功能 4. 测试时建议使用体验版或真机调试