Box2D
Utvecklare | Erin Catto |
---|---|
Initial release | 11 september 2007 |
Stabil frisättning | |
Förvar | |
Skrivet i | C++ |
Operativ system | OS oberoende |
Typ | Mellanvara |
Licens |
MIT (sedan version 2.4.0) zlib-licens |
Hemsida |
Box2D är en gratis tvådimensionell fysiksimulatormotor med öppen källkod skriven i C++ av Erin Catto och publicerad under MIT - licensen . Det har använts i Crayon Physics Deluxe , Limbo , Rolando , Incredibots , Angry Birds , Tiny Wings , Shovel Knight , Transformice , Happy Wheels och många online Flash-spel, såväl som iPhone, iPad och Android-spel med Cocos2d eller Moscrif-spelet motor och Corona- ramverk.
Historia
Box2D släpptes först som "Box2D Lite", en demonstrationsmotor för att åtfölja en fysikpresentation som gavs av Erin Catto på GDC 2006. Den 11 september 2007 släpptes den som öppen källkod på SourceForge . Den 17 januari 2010 flyttade Box 2D projektet till Google Code för värd. Den 12 juli 2015 flyttades hosting igen, denna gång till GitHub .
Den 6 mars 2008 lanserades version 2.0, som introducerade kontinuerlig kollisionsdetektion och förnyade API :et .
Den 27 juli 2020 lanserades version 2.4, med en mängd olika ändringar, framför allt ändrades licensen till MIT-licensen .
Tillgänglighet över plattformar
Box2D är själv skrivet i plattformsoberoende C++ (kan användas på alla system med en C++-kompilator tillgänglig). Motorn kan kompileras i för fast punkt och flyttal , och har använts på Nintendo DS , Wii och flera mobiltelefoner (inklusive Android , BlackBerry 10 och iOS ) såväl som de flesta större operativsystem.
Motorn har porterats till många andra programmeringsspråk och miljöer, inklusive Java , Adobe Flash (i ActionScript- och Haxe -språk), C# , Lua , JavaScript och D . Det finns bindningar för att använda det kompilerade biblioteket från Python , DarkBASIC och BBC BASIC .
Den 30 oktober 2009 tillkännagavs att Box2D integrerades i den (nu äldre) Torque 2D-spelmotorn .
Program som använder motorn
- BBC Basic för SDL , plattformsoberoende version av BBC Basic
- BlitzBasic
- GameMaker: Studio , använder motorn för fysiksimulering.
- LibGDX , använder fysikmotorn för spel och belysning.
- Stencyl , använder fysikmotorn för spel och tillåter export till Flash och iOS.
- Enhet
- Konstruera2
- LÖVE , använder fysikmotorn för spel
- Solar2D
- Clickteam Fusion 2.5
- Flame , Flutter spelmotor
Funktioner
Box2D utför simulering av begränsad stel kropp . Den kan simulera kroppar som består av konvexa polygoner , cirklar och kantformer. Kroppar sammanfogas med leder och påverkas av krafter . Motorn tillämpar också gravitation , friktion och restitution .
Box2D:s kollisionsdetektering och upplösningssystem består av tre delar: en inkrementell svep- och beskärningsfas , en kontinuerlig kollisionsdetekteringsenhet och en stabil linjär-tidskontaktlösare. Dessa algoritmer tillåter effektiva simuleringar av snabba kroppar och stora stackar utan att missa kollisioner eller orsaka instabilitet.
Relaterade motorer
En tidigare version av Box2D-motorn, nu känd som Box2D Lite, släpptes främst för utbildningsändamål, baserat på en serie årliga presentationer av spelutvecklarkonferensen som Erin Catto har hållit. Box2D Lite använder många av samma algoritmer som Box2D, men har en mindre funktionsuppsättning.
Chipmunk - fysikmotorn (skriven i C) och Phys2D (skriven i Java) är båda delvis baserade på Box2D Lite. Fysikmotorn som används i SpriteKit för iOS och OS X använder Box2D internt.
LiquidFun-fysikmotorn är en gaffel av Box2D av Google , som lägger till vätskesimulering till motorn.
LibGDX använder ett Java-omslag runt inbyggd Box2D-kod skriven i C++ som sin fysikmotor.
Artiklar
Itterheim och Wenderlich beskriver användningen av Box2D i Cocos2d iPhone -motorn. En artikel i Adobe Edge-nyhetsbrevet diskuterar användningen av Box2D i Flash-spel.