Box2D
JamJar includes the Box2D physics engine to handle all of the Physics calculations. There is a wrapper around the Box2D APIs to make it integrate better with the JamJar architecture using entities, components, and systems.
The Box2DPhysicsSystem
manages Box2D and acts as a bridge between Box2D and JamJar.
Setting up the Box2D Physics System
To set up a Box2DPhysicsSystem
you need to provide a message bus alongside a Vector2D
representing the gravity
to apply to Box2D objects.
#include "standard/2d/box2d/box2d_physics_system.hpp"
#include "geometry/vector_2d.hpp"
...
new JamJar::Standard::_2D::Box2DPhysicsSystem(messageBus, JamJar::Vector2D(0, -10.0f));
This sets up the Box2DPhysicsSystem
with the world gravity set to x: 0, y: -10.0f
(gravity downwards).