Files
shooter-demo/client-cocos/BUILD_PHYSICS_GUIDE.md
2025-11-28 18:10:10 +08:00

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/` - 输出目录