This commit is contained in:
WangXiang
2025-12-22 18:57:51 +08:00
commit 6119faf53e
159 changed files with 19162 additions and 0 deletions

120
README.md Normal file
View File

@@ -0,0 +1,120 @@
# 口袋广场 (PokePlaza) - 项目使用指南
这是一个基于 **Godot 4.5 + Node.js** 的复古像素风格多人在线聊天室Pixel Art Cozy MMO
---
## 🏗️ 项目架构
```
whale_town/
├── server/ # Node.js 后端服务器
│ ├── index.js # WebSocket 游戏服务器 (默认端口: 8910)
│ └── package.json # npm 依赖
├── Scenes/ # Godot 场景文件
├── Scripts/ # Godot 脚本
└── project.godot # Godot 项目配置
```
---
## 🚀 快速开始
### 0. 环境准备 (Prerequisites)
在开始之前,请确保已安装以下软件:
1. **Node.js**: v18 或更高版本
* 检查命令: `node -v`
* [下载 Node.js](https://nodejs.org/)
2. **Godot Engine**: 4.5 或更高版本
* [下载 Godot](https://godotengine.org/)
### 1. 启动游戏服务器 (Server)
服务器负责处理多玩家同步。
```bash
# 1. 进入服务器目录
cd server
# 2. 安装依赖 (仅首次运行需要)
npm install
# 3. 启动服务器
node index.js
```
**成功标志**:
终端输出: `PokePlaza Server listening on ws://localhost:8910`
### 2. 启动游戏客户端 (Client)
1. 启动 **Godot Engine**
2. 导入本项目 (`project.godot`)。
3. 点击右上角的 **运行 (Run)** 按钮 (快捷键 `F5`)。
4. **登录界面**:
* 输入你的名字 (例如: "Ash")。
* 点击 **Start** 按钮。
* *默认会自动连接到本地服务器 `ws://127.0.0.1:8910`*
### 3. 多人联机测试
要在本地测试多人功能:
1. 运行一个客户端实例,登录并在地图上移动。
2. 在 Godot 编辑器中,再次点击运行,或使用 **Debug -> Run Multiple Instances** 启动第二个窗口。
3. 用不同的名字登录。
4. 现在你应该能看到两个角色在同一个世界中互动!
---
## ⚙️ 配置说明 (Configuration)
### 修改服务器端口
如果你需要修改 WebSocket 服务器端口 (默认 `8910`)
1. 打开 `server/index.js`
2. 找到第 3 行: `const PORT = 8910;`
3. 修改为你想要的端口号。
4. 重启服务器生效。
### 修改客户端连接地址
如果你将服务器部署在局域网或其他机器上:
1. 打开 Godot 脚本 `Scripts/StartMenu.gd`
2. 找到代码中的 `SERVER_URL` 常量 (通常在顶部):
```gdscript
const SERVER_URL = "ws://127.0.0.1:8910"
```
3. 将其修改为你的服务器 IP 地址,例如 `ws://192.168.1.5:8910`。
---
## 🎮 操作说明
| 动作 | 按键 |
|------|------|
| **移动** | `W`, `A`, `S`, `D` 或 方向键 |
| **聊天** | 点击左下角输入框 -> 输入消息 -> `Enter` 发送 |
| **互动** | 靠近物体/椅子 (如果有互动提示) |
---
## ⚠️ 常见问题 (Troubleshooting)
**Q: 客户端显示 "Connection failed"?**
* 检查服务器终端是否正在运行 (`node index.js`)。
* 检查端口是否被防火墙拦截 (默认 `8910`)。
* 确认 `StartMenu.gd` 中的地址是否正确。
**Q: 无法看到其他玩家?**
* 确保所有玩家都连接到了**同一个**服务器 IP。
* 如果在局域网测试,请使用具体的局域网 IP (如 `192.168.x.x`) 而不是 `127.0.0.1`,并确保防火墙允许通信。
**Q: 报错 `Script Error`?**
* 请检查 Godot 控制台底部的 Debug 信息,确保脚本语法兼容 Godot 4.5+。
---
*Powered by Godot 4.5 + Node.js*