构建状态
Box2D
Box2D是一个用于游戏的2D物理引擎。
特性
碰撞
- 连续碰撞检测
- 接触事件和传感器
- 凸多边形、胶囊体、圆形、圆角多边形、线段和链条
- 每个刚体可包含多个形状
- 碰撞过滤
- 射线投射、形状投射和重叠查询
物理
- 稳健的"软步"刚体求解器
- 快速平移和旋转的连续物理模拟
- 基于岛屿的休眠机制
- 旋转、棱柱、距离、鼠标、焊接和车轮关节
- 关节限制、马达、弹簧和摩擦
- 关节和接触力
- 刚体移动事件和休眠通知
系统
- 面向数据的设计
- 使用可移植的C17编写
- 广泛的多线程和SIMD支持
示例
- 使用GLFW和enkiTS的OpenGL示例
- 使用imgui的图形用户界面
- 多个示例展示功能和性能
构建
- 安装CMake
- 确保CMake在用户PATH中
- Visual Studio:在命令提示符中运行
build.bat
- 其他情况:在bash shell中运行
build.sh
- 结果在build子文件夹中
- 在Windows上可以打开box2d.sln
为Xcode构建
- 安装CMake
- 在.zprofile中将CMake添加到路径(默认Terminal shell是zsh)
- export PATH="/Applications/CMake.app/Contents/bin:$PATH"
- mkdir build
- cd build
- cmake -G Xcode ..
- open box2d.xcodeproj
- 选择samples方案
- 编辑方案以设置自定义工作目录,将其设为box2d/samples
- 现在可以构建和运行示例了
兼容性
Box2D库和示例可在Windows、Linux和Mac上构建和运行。
Box2D应该在最新版本的clang和gcc上构建。您需要最新的Visual Studio版本(17.8.3+)以编译C11原子操作。
x64上默认支持AVX2 CPU。您可以在CMake选项中关闭此功能并改用SSE2。非常旧的CPU可能存在一些兼容性问题。
文档
社区
贡献
请不要提交拉取请求。相反,请为错误或功能请求提交问题。如需支持,请访问Discord服务器。
提供反馈
请提交问题或在Discord上开始聊天。
许可证
Box2D由Erin Catto开发,使用MIT许可证。
赞助
通过Github赞助支持Box2D的开发。