love.physics.newBody

Creates a new body.

There are three types of bodies.

  • Static bodies do not move, have an infinite mass, and can be used for level boundaries.
  • Dynamic bodies are the main actors in the simulation, they collide with everything.
  • Kinematic bodies do not react to forces and only collide with dynamic bodies.

The mass of the body gets calculated when a Fixture is attached or removed, but can be changed at any time with Body:setMass or Body:resetMassData.

O.png Making changes to a World is not allowed inside of the beginContact, endContact, preSolve, and postSolve callback functions, as BOX2D locks the world during these callbacks.  


Function

Available since LÖVE 0.8.0
This variant is not supported in earlier versions.

Synopsis

body = love.physics.newBody( world, x, y, type )

Arguments

World world
The world to create the body in.
number x (0)
The x position of the body.
number y (0)
The y position of the body.
BodyType type ("static")
The type of the body.

Returns

Body body
A new body.

Function

Removed in LÖVE 0.8.0
This variant is not supported in that and later versions.

Synopsis

body = love.physics.newBody( world, x, y, m, i )

Arguments

World world
The world to create the body in.
number x (0)
The x position of the body.
number y (0)
The y position of the body.
number m (0)
The mass of the body.
number i (0)
The rotational inertia of the body.

Returns

Body body
A new body.

Examples

love.physics.setMeter(40) -- meter is 40 px/units
world = love.physics.newWorld(0, 9.81*40, true) -- new world with gravity
body1 = love.physics.newBody(world, 250, 300, "static") -- new static body at x=250, y=300
body2 = love.physics.newBody(world, 251, 100, "dynamic") -- new dynamic body at x=251, y=100

See Also


Other Languages