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。Python、DarkBASIC和英國廣播公司 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