Box2D
Ekrānuzņēmums | |
Izstrādātājs | Rovio Entertainment |
---|---|
Sākotnējā versija | 2007. gada 11. septembrī |
Stabilā versija | 2.3.1 / 2014. gada 5. aprīlī[1] |
Progr. valoda | C++ |
Operētājsistēma | OS independent |
Veids | Middleware |
Licence | zlib[2] |
Repozitorijs | |
Tīmekļa vietne |
www |
Box2D ir atvērtā koda C++ dzinējs, kas imitē cietos ķermeņus 2D. Box2D izstrādā Erin Catto[1], un tam ir zlib licence. To izmanto Crayon Physics Deluxe, Limbo, Rolando, Incredibots, Angry Birds, Tiny Wings, Shovel Knight, Transformice, Happy Wheels un daudzās tiešsaistes flash spēlēs, kā arī iPhone, iPad un Android spēlēm izmantojot Cocos2d vai Moscrif spēļu dzinēju un Corona sistēmu.
Zīmēšanu Box2D neveic. Dažās implementācijās tiek zīmētas pavisam vienkāršas figūras atkļūdošanai, bet vispār box2D tikai sniedz objektu pozīcijas un rotāciju, un zīmēšana jāveic pašiem.
Vēsture
[labot šo sadaļu | labot pirmkodu]Box2D[2] pirmo reizi tika izlaists kā "Box2D Lite", demonstrācijas dzinējs, ko papildināja fizikas prezentācija, kuru sniedza Erin Catto GDC 2006. gada 11. septembrī. 2010. gada 17. janvārī Box 2D pārvietoja projektu uz Google kodu, lai to uzturētu. 2015. gada 12. jūlijā atkal tika pārcelts hostings, šoreiz uz GitHub.
2008. gada 6. martā tika uzsākta versija 2.0, kas ieviesa nepārtrauktu papildināšanu un API atjaunošanu.
Box2D galvenās sastāvdaļas
[labot šo sadaļu | labot pirmkodu]- World: Veic simulāciju. Zin visu par koordinātu telpu un satur sarakstu ar visiem pasaules objektiem
- Body: Galvenā simulējamo ķermeņu klase. Body objektiem ir pozīcija, rotācija un ātrums.
- Shape: Satur ģeometrijas aprakstu ķermeņiem, kas tiek izmantota sadursmēm (collisions).
- Fixture: Piestiprina ķermenim ģeometriju (shape) un satur īpašības, kā blīvums, berze un elastība/atgrūšana.
- Joint: Savienojums starp diviem ķermeņiem vai ķermeni un pasauli, piemēram atspere vai eņģe.
Ķermeņu tipi
[labot šo sadaļu | labot pirmkodu]Box2D veic ierobežotu stingru ķermeņa simulāciju. Tā var simulēt ķermeņus, kas sastāv no izliektiem poligoniem, apļiem un malu formām. Ķermenis ir savienots kopā ar locītavām un darbojas ar spēkiem. Dzinējs izmanto arī smagumu, berzi un restitūciju. Šos ķermeņus iedala 3 tipos:
- b2Body.b2_staticBody
- Nekustīgs objekts, kas ietekmē citus ķermeņus
- b2Body.b2_dynamicBody
- Jebkurš kustinām objekts, kas piedalās fizikas simulācijā
- b2Body.b2_kinematicBody:
- Objekti, kam var būt ātrums, bet kas nepiedalās fizikas simulācijā, piemēram, mākoņi fonā.
Objektu izveidošana
[labot šo sadaļu | labot pirmkodu]Lai izveidotu objektu nepieciešams izpildīt 5 soļus:
- Izveidot bodyDef objektu
- Balstoties uz bodyDef izveidot b2Body objektu
- Izveidot b2Shape objektu: b2PolygonShape, b2CircleShape
- Izveidot b2FixtureDef objektu un uzstādīt tam īpašības un b2Shape
- Piesaistīt b2Body objektam b2FixtureDef objektu un līdz ar to shape
Pieejamība starp citām platformām
[labot šo sadaļu | labot pirmkodu]Box2D ir rakstīts neatkarīgi no platformas C ++ (izmantojams jebkurā sistēmā ar C ++ kompilatoru). Dzinējs var tikt sastādīts fiksētā un peldošā komata režīmā, un to izmantoja Nintendo DS, Wii un vairākos mobilajos tālruņos (ieskaitot Android, BlackBerry 10 un iOS), kā arī lielākajā daļā galveno operētājsistēmu.
Dzinējs ir pārnests uz daudzām citām programmēšanas valodām un vidēm, ieskaitot Java, Adobe Flash (ActionScript un Haxe valodās), C #, Lua, JavaScript, un D. Saistības pastāv, lai izmantotu apkopoto bibliotēku no Python un DarkBASIC.
2009. gada 30. oktobrī tika paziņots, ka Box2D tika integrēts (tagad vecāks) 2D spēļu dzinējs.
Programmas, kas izmanto Box2D
[labot šo sadaļu | labot pirmkodu]- Construct2
- Isogenic Engine
- LÖVE, izmanto fizikas motoru spēlēm.
- ENIGMA Development Environment
- GameMaker: Studio, izmanto motoru fizikas simulācijai.
- Unity
- LibGDX, izmanto fizikas motoru spēlēm un apgaismojumu.
- Clickteam Fusion
- Defold, palaida spēli King 2016 gadā
- Corona SDK
- BlitzBasic
- Stencyl, izmanto fizikas motoru spēlēm un ļauj eksportēt uz Flash un iOS.
Atsauces
[labot šo sadaļu | labot pirmkodu]- ↑ Erin Catto. «Release v2.3.1: Version 2.3.1 · erincatto/Box2D». GitHub.
- ↑ «Box2D». Box2D.