4个版本

0.0.4 2023年5月12日
0.0.3 2022年1月13日
0.0.2 2021年12月31日
0.0.1 2020年11月20日

#568 in 游戏开发

每月 32 次下载

MIT 许可证

740KB
18K SLoC

box2d-rs

Box2D的Rust本地移植。

最小Rust版本:1.56.0(dev-dependecies为1.61)

移植的Box2D版本:2.4.1 commits

Latest release on crates.io Documentation on docs.rs Build status dependency status codecov

在移植过程中,我追求以下目标

  • 保持文件系统结构不变,以便于后续更新
  • 保留所有标识符名称(除大小写转换外)和代码顺序(除一些特定情况外)
  • 将所有新代码存储在单独的文件中
  • 没有不安全的代码

待办事项

  • 将注释从doxygen转换为rustdoc
  • 修复一些注释

已知差异

  • 将dump()函数替换为serde库(可选依赖项)
  • 将注释从doxygen转换为rustdoc
  • 测试平台UI中添加了两个用于序列化/反序列化的额外按钮(仅在serde_support功能下可用)。序列化数据在serialize_test目录中可用
  • 将query/raycast回调类替换为闭包

用法

将以下内容添加到您的Cargo.toml

[dependencies]
box2d-rs = "0.0.4"

如果您想使用serde序列化/反序列化世界

[dependencies]
box2d-rs = { version = "0.0.4", features = ["serde_support"] }

从源代码构建并运行测试平台

以调试模式构建并运行测试平台

# At the reposity root
cargo build --examples --tests
cargo run --example testbed

在具有serde_support的调试模式下

cargo build --examples --tests --features serde_support
cargo run --example testbed --features serde_support

带有serde_support的发布版本

cargo build --examples --tests --release --features serde_support
cargo run --example testbed --release --features serde_support

运行测试

cargo test --features serde_support

包功能

可选地,可以启用以下依赖项

  • serde_support通过serde包启用世界的序列化/反序列化

文档

依赖关系