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