Files
whale_town/README.md
2026-01-07 23:37:56 +08:00

121 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 口袋广场 (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*