public class PhysicsBody

  1. Object
  2. PhysicsBody

A rigid body in a PhysicsWorld, wrapping a shaded Box2D body.

Positions and velocities are expressed in pixels (with the screen y axis pointing down); the wrapper converts to and from Box2D’s meters/y-up internally. A body may be linked to a PhysicsLinkable (typically a com.codename1.gaming.Sprite) via #setLinkedSprite(Object); after each PhysicsWorld#step(float) the body pushes its transform into that object so the sprite follows the simulation.

Methods

public void setLinkedSprite(Object sprite)Links this body to an object the simulation drives – typically a com.codename1.gaming.Sprite.
public Object getLinkedSprite()
public float getX()The body center x position in pixels.
public float getY()The body center y position in pixels (screen space, y down).
public float getRotation()The body rotation in radians (clockwise positive, screen space).
public void setTransform(float xPx, float yPx, float rotationRadians)Teleports the body to the given pixel position and rotation (radians).
public void setLinearVelocity(float vxPx, float vyPx)Sets the linear velocity in pixels per second (y down).
public float getLinearVelocityX()
public float getLinearVelocityY()
public void setAngularVelocity(float radiansPerSecond)Sets the angular velocity in radians per second (clockwise positive).
public float getAngularVelocity()
public void applyForce(float fxPx, float fyPx)Applies a continuous force (in pixel based units, y down) at the body center.
public void applyForce(float fxPx, float fyPx, float worldXPx, float worldYPx)Applies a continuous force at a world point (pixels, y down).
public void applyLinearImpulse(float ixPx, float iyPx)Applies an instantaneous impulse (pixel based units, y down) at the body center.
public void applyTorque(float torque)Applies an angular impulse / torque (clockwise positive).
public void setFixedRotation(boolean fixed)
public void setBullet(boolean bullet)Enables continuous collision detection, preventing fast bodies from tunneling through thin walls.
public void setLinearDamping(float damping)
public void setAngularDamping(float damping)
public void setDensity(float density)
public void setFriction(float friction)
public void setRestitution(float restitution)
public void setSensor(boolean sensor)Makes the body a sensor: it detects contacts (via ContactListener) but does not produce a collision response.
public Object getUserData()
public void setUserData(Object userData)
public Body getNativeBody()Returns the underlying shaded Box2D body (meters, y up) for advanced use.

Inherited methods

Method details

setLinkedSprite

public void setLinkedSprite(Object sprite)
Links this body to an object the simulation drives – typically a com.codename1.gaming.Sprite. If the object implements PhysicsLinkable its position and rotation are updated every step.

getLinkedSprite

public Object getLinkedSprite()

getX

public float getX()
The body center x position in pixels.

getY

public float getY()
The body center y position in pixels (screen space, y down).

getRotation

public float getRotation()
The body rotation in radians (clockwise positive, screen space).

setTransform

public void setTransform(float xPx, float yPx, float rotationRadians)
Teleports the body to the given pixel position and rotation (radians).

setLinearVelocity

public void setLinearVelocity(float vxPx, float vyPx)
Sets the linear velocity in pixels per second (y down).

getLinearVelocityX

public float getLinearVelocityX()

getLinearVelocityY

public float getLinearVelocityY()

setAngularVelocity

public void setAngularVelocity(float radiansPerSecond)
Sets the angular velocity in radians per second (clockwise positive).

getAngularVelocity

public float getAngularVelocity()

applyForce

public void applyForce(float fxPx, float fyPx)
Applies a continuous force (in pixel based units, y down) at the body center.

applyForce

public void applyForce(float fxPx, float fyPx, float worldXPx, float worldYPx)
Applies a continuous force at a world point (pixels, y down).

applyLinearImpulse

public void applyLinearImpulse(float ixPx, float iyPx)
Applies an instantaneous impulse (pixel based units, y down) at the body center.

applyTorque

public void applyTorque(float torque)
Applies an angular impulse / torque (clockwise positive).

setFixedRotation

public void setFixedRotation(boolean fixed)

setBullet

public void setBullet(boolean bullet)
Enables continuous collision detection, preventing fast bodies from tunneling through thin walls.

setLinearDamping

public void setLinearDamping(float damping)

setAngularDamping

public void setAngularDamping(float damping)

setDensity

public void setDensity(float density)

setFriction

public void setFriction(float friction)

setRestitution

public void setRestitution(float restitution)

setSensor

public void setSensor(boolean sensor)
Makes the body a sensor: it detects contacts (via ContactListener) but does not produce a collision response.

getUserData

public Object getUserData()

setUserData

public void setUserData(Object userData)

getNativeBody

public Body getNativeBody()
Returns the underlying shaded Box2D body (meters, y up) for advanced use.