Box2D :Box2D

更新时间:2024-09-21 17:46

Box2D是一款免费的开源二维物理引擎,由Erin Catto使用C++编写并在zlib授权下发布。它被广泛应用于多个平台的游戏开发,包括IPhone、iPad和Android游戏,以及在线Flash游戏。Box2D提供了丰富的物理仿真功能,使开发者能够轻松模拟2D刚体物体的运动和碰撞行为。Itterheim和Wenderlich介绍了Box2D在Cocos2d iPhone引擎中的使用情况。Adobe Edge新闻通讯中的一篇文章讨论了Box2D在Flash游戏中的使用情况。

基本介绍

Box2D本身采用平台无关的C++编写,适用于具有C++编译器的所有系统。它可以编译为固定点和浮点模式,并已在任天堂 DS、Wii、多种移动设备(包括Android、BlackBerry 10和iOS)以及大多数主要操作系统上使用。Box2D已移植到多种其他编程语言和环境中,包括Java、奥多比 Flash(ActionScript和Haxe)、C#、Lua、ECMAScript和D。PythonDarkBASIC英国广播公司 BASIC也有绑定可供使用。2009年10月30日,宣布Box2D正在集成到较旧的Torque 2D游戏引擎中。

Box2D被许多应用程序和游戏引擎所使用,包括BBC Basic for SDL、BlitzBasic、GameMaker: Studio、LibGDX、Stencyl、Unity、Construct2、LÖVE、Solar2D、Clickteam Fusion 2.5和Flame(Flutter游戏引擎)。这些应用程序利用Box2D的强大物理引擎来进行游戏开发和照明效果。

发展历史

Box2D最初作为演示引擎随Erin Catto在GDC 2006上的物理演讲一同发布。

2007年9月11日,Box2D作为开源项目在sourceforge上发布。

2010年1月17日,该项目迁至谷歌 Code托管。

2015年7月12日,Box2D再次迁移至GitHub

2008年3月6日,Box2D发布了2.0版本,引入了连续碰撞检测并改进了API。

2020年7月27日,Box2D推出了2.4版本,其中最显著的变化是许可证变更为MIT许可证。

特色

Box2D执行约束刚体模拟,支持由凸多边形、圆形和边缘形状组成的实体。实体通过关节相连,并受到各种力的作用。引擎还会施加重力、摩擦力和弹性。Box2D的碰撞检测和解决系统由增量扫掠和修剪粗略阶段、连续碰撞检测单元以及稳定的线性时间接触求解器组成。这些算法使得快速实体和大型堆栈的高效模拟成为可能,同时不会错过碰撞或导致不稳定。

相关引擎

Box2D的早期版本Box2D Lite主要用于教育目的,基于Erin Catto每年在GDC上的系列讲座。Box2D Lite使用了许多与Box2D相同的算法,但功能较少。Chipmunk物理引擎(C编写)和Phys2D(Java编写)都部分基于Box2D Lite。SpriteKit用于IOS和OS X的物理引擎内部使用了Box2D。LiquidFun物理引擎是谷歌对Box2D的分支,增加了流体模拟功能。LibGDX使用了一个Java包装器,围绕原生Box2D代码(C++编写)作为其物理引擎。

参考资料

box2d教程.简书.2024-08-20

推荐:Box2D - 强大的2D物理引擎,为游戏开发赋予生命.CSDN博客.2024-08-20

Box2D一:基础知识.博客园.2024-08-20

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}
友情链接: