完善游戏开展流程
This commit is contained in:
@@ -4,23 +4,117 @@
|
||||
你画我猜 SpringBoot Websocket
|
||||
|
||||
#### 软件架构
|
||||
- 后端:Java21、Maven、SpringBoot
|
||||
- 后端:Java21、Maven、SpringBoot 3.2.4
|
||||
- 前端:HTML + jQuery
|
||||
- 通讯:HTTP + Websocket
|
||||
- 工具库:Lombok、Hutool、FastJSON2
|
||||
|
||||
#### 项目结构
|
||||
```
|
||||
draw-and-guess/
|
||||
├── src/main/java/cn/airnan/dg/
|
||||
│ ├── configs/ # 配置类(CORS、WebSocket、全局配置)
|
||||
│ ├── controller/ # 控制器(玩家、房间、题目、首页)
|
||||
│ ├── entity/ # 实体类(玩家、房间、画板、画笔、点、题目)
|
||||
│ ├── pojo/ # 数据传输对象
|
||||
│ ├── service/ # 业务逻辑层
|
||||
│ └── utils/ # 工具类(WebSocket、消息封装、通用响应)
|
||||
├── src/main/resources/
|
||||
│ ├── static/ # 静态资源(HTML、CSS、JS、图标)
|
||||
│ ├── application.yml # 应用配置
|
||||
│ └── topic.json # 题库文件
|
||||
└── pom.xml # Maven 依赖配置
|
||||
```
|
||||
|
||||
#### 安装教程
|
||||
|
||||
1. 修改前端`index.html`中的后端地址
|
||||
2. 运行命令:
|
||||
1. **修改前端配置**
|
||||
打开 `src/main/resources/static/index.html`,修改 `backendAddr` 变量为实际的服务器地址:
|
||||
```javascript
|
||||
const backendAddr = "192.168.31.222:8080" // 修改为你的服务器IP和端口
|
||||
```
|
||||
|
||||
2. **编译打包**
|
||||
```bash
|
||||
# 使用 Maven Wrapper 编译打包
|
||||
mvnw clean package
|
||||
|
||||
# 或使用本地 Maven
|
||||
mvn clean package
|
||||
```
|
||||
打包完成后,在 `target` 目录下会生成 `draw-and-guess-0.0.1-SNAPSHOT.jar`
|
||||
|
||||
3. **运行应用**
|
||||
```bash
|
||||
# 直接运行
|
||||
java -jar xxx.jar
|
||||
# 后台运行
|
||||
nohup java -jar draw-and-guess-0.0.1-SNAPSHOT.jar >> ./draw.log 2>&1 &
|
||||
java -jar target/draw-and-guess-0.0.1-SNAPSHOT.jar
|
||||
|
||||
# 后台运行(Linux/Mac)
|
||||
nohup java -jar target/draw-and-guess-0.0.1-SNAPSHOT.jar >> ./draw.log 2>&1 &
|
||||
|
||||
# Windows 后台运行
|
||||
start /B java -jar target/draw-and-guess-0.0.1-SNAPSHOT.jar
|
||||
```
|
||||
3. 访问`http://IP:8080`进行游玩
|
||||
|
||||
4. **访问应用**
|
||||
打开浏览器访问 `http://IP:8080` 进行游玩
|
||||
|
||||
#### 使用说明
|
||||
|
||||
1. 题库在`resources/topic.json`中,可自行添加。
|
||||
1. **创建玩家**
|
||||
- 在首页输入玩家昵称
|
||||
- 点击"创建"按钮注册玩家
|
||||
|
||||
2. **房间管理**
|
||||
- 查看房间列表,点击"刷新列表"获取最新房间
|
||||
- 点击"创建房间"创建新房间并成为房主
|
||||
- 点击"加入房间"加入已有房间
|
||||
|
||||
3. **游戏玩法**
|
||||
- 进入房间后,玩家可以实时聊天
|
||||
- 房主或其他玩家可以在画板上绘画
|
||||
- 支持多种颜色、画笔粗细调节
|
||||
- 支持橡皮擦功能
|
||||
- 可以清空画板重新绘画
|
||||
|
||||
4. **题库配置**
|
||||
- 题库文件位于 `resources/topic.json`
|
||||
- 格式为 JSON 数组,每个元素包含题目和提示
|
||||
- 可自行添加或修改题目:
|
||||
```json
|
||||
[
|
||||
{"题目名称":"提示信息"},
|
||||
{"空调":"日常物品、2个字"}
|
||||
]
|
||||
```
|
||||
|
||||
#### API 接口说明
|
||||
|
||||
**玩家接口**
|
||||
- `POST /api/player/create` - 创建玩家
|
||||
- `GET /api/player/list` - 获取玩家列表
|
||||
- `POST /api/player/isExist` - 检查玩家是否存在
|
||||
|
||||
**房间接口**
|
||||
- `GET /api/room/list` - 获取房间列表
|
||||
- `POST /api/room/create` - 创建房间
|
||||
- `POST /api/room/canJoin` - 检查是否可加入房间
|
||||
|
||||
**题目接口**
|
||||
- `GET /api/topic/random` - 获取随机题目
|
||||
|
||||
**WebSocket 连接**
|
||||
- 连接地址:`ws://IP:8080/websocket/{playerId}/{roomId}`
|
||||
- 消息类型:
|
||||
- `room-msg` - 房间通知消息
|
||||
- `room-chat` - 聊天消息
|
||||
- `room-draw` - 绘画数据
|
||||
- `room-draw-clear` - 清空画板
|
||||
|
||||
#### 技术特点
|
||||
- 基于 Spring Boot 3.2.4 + Java 21 开发
|
||||
- 使用 WebSocket 实现实时双向通信
|
||||
- 支持多人在线绘画和聊天
|
||||
- 前端使用 Canvas 实现绘画功能
|
||||
- 支持移动端和 PC 端访问
|
||||
|
||||
|
||||
Reference in New Issue
Block a user