Skip to content

Manipulating entity bodies

Roberto de Deus Barbosa Murta edited this page Nov 8, 2019 · 2 revisions

Once the entity is assigned as a physics-simulated body, the engine core transfers entity management powers to the Box2D simulator. For this reason, every manipulation procedure which involves moving and rotating the entity, must pass through the simulator engine.

We can move basic non-physics-managed entities by simply changing their current position, but for physics-managed entities it is necessary to apply impulses or set linear velocities if we want to move entities around.

The ETHPhysicsController@ reference object encapsulates a b2Body object which is used to manipulate body properties.

Retrieving the physics controller of an entity is very simple, all we need to do is call ETHEntity::GetPhysicsController:

void ETHEntityCallback_character(ETHEntity@ thisEntity)
{
	ETHPhysicsController@ controller = thisEntity.GetPhysicsController();

	// if the returned value is null, it means thisEntity doesn't have a physics body
	if (controller is null)
		return;

	// move the character to the right
	controller.SetLinearVelocity(vector2(4.0f, 0.0f));
}

Browse all ETHPhysicsController methods in the API reference pages.

Clone this wiki locally