94 lines
2.4 KiB
Markdown
94 lines
2.4 KiB
Markdown
# Pinball Physics 构建指南
|
|
|
|
这个脚本用于构建物理引擎并生成客户端所需的 WASM 和 asm.js 文件。
|
|
|
|
## 使用方法
|
|
|
|
```batch
|
|
# 在 client-cocos 目录下运行
|
|
|
|
# 构建 debug 版本(默认)
|
|
build-physics.bat
|
|
|
|
# 或显式指定 debug
|
|
build-physics.bat debug
|
|
|
|
# 构建 release 版本(推荐用于生产环境)
|
|
build-physics.bat release
|
|
```
|
|
|
|
## 构建流程
|
|
|
|
1. **编译物理引擎**
|
|
- 进入 `../pinball-physics` 目录
|
|
- 执行 `cargo build --target wasm32-unknown-unknown [--release]`
|
|
|
|
2. **拷贝 WASM 文件**
|
|
- 源文件: `../pinball-physics/target/wasm32-unknown-unknown/[模式]/pinball_physics.wasm`
|
|
- 目标文件: `assets/wasm/pinball_physics.bin`
|
|
|
|
3. **生成 asm.js**
|
|
- 使用 `../tools/emscripten/gen-asm.bat` 工具
|
|
- 输出: `assets/wasm/pinball_physics.js`
|
|
|
|
## 输出文件
|
|
|
|
构建完成后,会在 `assets/wasm/` 目录下生成:
|
|
|
|
- **pinball_physics.bin** - WebAssembly 二进制文件
|
|
- **pinball_physics.js** - asm.js 文件(用于兼容性)
|
|
|
|
## 前置要求
|
|
|
|
1. **Rust 环境**
|
|
```batch
|
|
# 安装 Rust
|
|
# 访问 https://rustup.rs/
|
|
|
|
# 添加 WebAssembly 目标
|
|
rustup target add wasm32-unknown-unknown
|
|
```
|
|
|
|
2. **Emscripten 环境**
|
|
```batch
|
|
# 安装 Emscripten
|
|
tools\emscripten\install.bat
|
|
```
|
|
|
|
## 故障排除
|
|
|
|
### 常见错误
|
|
|
|
1. **未找到 Rust 编译器**
|
|
- 确保已安装 Rust
|
|
- 检查 PATH 环境变量
|
|
|
|
2. **未找到物理引擎项目**
|
|
- 确保在正确的目录运行脚本
|
|
- 检查 `../pinball-physics/Cargo.toml` 是否存在
|
|
|
|
3. **Emscripten 转换失败**
|
|
- 确保已运行 `tools\emscripten\install.bat`
|
|
- 检查 Emscripten 环境是否正确设置
|
|
|
|
4. **权限错误**
|
|
- 确保对输出目录有写权限
|
|
- 尝试以管理员身份运行
|
|
|
|
### 调试技巧
|
|
|
|
- 查看详细的错误信息和文件路径
|
|
- 检查各个步骤的输出文件是否正确生成
|
|
- 验证文件大小是否合理
|
|
|
|
## 使用建议
|
|
|
|
1. **开发阶段**: 使用 `debug` 模式,编译速度更快
|
|
2. **生产环境**: 使用 `release` 模式,性能更好,文件更小
|
|
3. **兼容性**: asm.js 文件主要用于不支持 WebAssembly 的老旧浏览器
|
|
|
|
## 相关文件
|
|
|
|
- `../pinball-physics/` - 物理引擎 Rust 项目
|
|
- `../tools/emscripten/` - Emscripten 工具集
|
|
- `assets/wasm/` - 输出目录 |