Cocos2d-x  v3.17
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Groups Pages
PhysicsWorld Class Reference

An PhysicsWorld object simulates collisions and other physical properties. More...

Public Member Functions

virtual void addJoint (PhysicsJoint *joint)
 Adds a joint to this physics world. More...
 
local addJoint ( local joint)
 Adds a joint to this physics world. More...
 
virtual void removeJoint (PhysicsJoint *joint, bool destroy=true)
 Remove a joint from this physics world. More...
 
local removeJoint ( local joint, local true)
 Remove a joint from this physics world. More...
 
virtual void removeAllJoints (bool destroy=true)
 Remove all joints from this physics world. More...
 
local removeAllJoints ( local true)
 Remove all joints from this physics world. More...
 
virtual void removeBody (PhysicsBody *body)
 Remove a body from this physics world. More...
 
var removeBody ( var body)
 Remove a body from this physics world. More...
 
local removeBody ( local body)
 Remove a body from this physics world. More...
 
virtual void removeBody (int tag)
 Remove body by tag. More...
 
virtual void removeAllBodies ()
 Remove all bodies from physics world. More...
 
var removeAllBodies ()
 Remove all bodies from physics world. More...
 
local removeAllBodies ()
 Remove all bodies from physics world. More...
 
void rayCast (PhysicsRayCastCallbackFunc func, const Vec2 &start, const Vec2 &end, void *data)
 Searches for physics shapes that intersects the ray. More...
 
var rayCast ( var func, var start, var end, var data)
 Searches for physics shapes that intersects the ray. More...
 
local rayCast ( local func, local start, local end, local data)
 Searches for physics shapes that intersects the ray. More...
 
void queryRect (PhysicsQueryRectCallbackFunc func, const Rect &rect, void *data)
 Searches for physics shapes that contains in the rect. More...
 
void queryPoint (PhysicsQueryPointCallbackFunc func, const Vec2 &point, void *data)
 Searches for physics shapes that contains the point. More...
 
Vector< PhysicsShape * > getShapes (const Vec2 &point) const
 Get physics shapes that contains the point. More...
 
local getShapes ( local point)
 Get physics shapes that contains the point. More...
 
PhysicsShapegetShape (const Vec2 &point) const
 Get the nearest physics shape that contains the point. More...
 
local getShape ( local point)
 Get the nearest physics shape that contains the point. More...
 
const Vector< PhysicsBody * > & getAllBodies () const
 Get all the bodies that in this physics world. More...
 
local getAllBodies ()
 Get all the bodies that in this physics world. More...
 
PhysicsBodygetBody (int tag) const
 Get a body by tag. More...
 
local getBody ( local tag)
 Get a body by tag. More...
 
ScenegetScene () const
 Get a scene contain this physics world. More...
 
var getScene ()
 Get a scene contain this physics world. More...
 
local getScene ()
 Get a scene contain this physics world. More...
 
Vec2 getGravity () const
 Get the gravity value of this physics world. More...
 
void setGravity (const Vec2 &gravity)
 set the gravity value of this physics world. More...
 
var setGravity ( var gravity)
 set the gravity value of this physics world. More...
 
local setGravity ( local gravity)
 set the gravity value of this physics world. More...
 
void setSpeed (float speed)
 Set the speed of this physics world. More...
 
float getSpeed ()
 Get the speed of this physics world. More...
 
var getSpeed ()
 Get the speed of this physics world. More...
 
local getSpeed ()
 Get the speed of this physics world. More...
 
void setUpdateRate (int rate)
 Set the update rate of this physics world. More...
 
local setUpdateRate ( local rate)
 Set the update rate of this physics world. More...
 
int getUpdateRate ()
 Get the update rate of this physics world. More...
 
local getUpdateRate ()
 Get the update rate of this physics world. More...
 
void setSubsteps (int steps)
 set the number of substeps in an update of the physics world. More...
 
local setSubsteps ( local steps)
 set the number of substeps in an update of the physics world. More...
 
int getSubsteps () const
 Get the number of substeps of this physics world. More...
 
local getSubsteps ()
 Get the number of substeps of this physics world. More...
 
void setFixedUpdateRate (int updatesPerSecond)
 set the number of update of the physics world in a second. More...
 
var setFixedUpdateRate ( var updatesPerSecond)
 set the number of update of the physics world in a second. More...
 
local setFixedUpdateRate ( local updatesPerSecond)
 set the number of update of the physics world in a second. More...
 
int getFixedUpdateRate () const
 get the number of substeps
 
var getFixedUpdateRate ()
 get the number of substeps
 
local getFixedUpdateRate ()
 get the number of substeps
 
void setDebugDrawMask (int mask)
 Set the debug draw mask of this physics world. More...
 
var setDebugDrawMask ( var mask)
 Set the debug draw mask of this physics world. More...
 
local setDebugDrawMask ( local mask)
 Set the debug draw mask of this physics world. More...
 
int getDebugDrawMask ()
 Get the debug draw mask. More...
 
void setAutoStep (bool autoStep)
 To control the step of physics. More...
 
bool isAutoStep ()
 Get the auto step of this physics world. More...
 
void step (float delta)
 The step for physics world. More...
 
local step ( local delta)
 The step for physics world. More...
 

Static Public Attributes

static const int DEBUGDRAW_NONE
 draw nothing
 
var DEBUGDRAW_NONE
 draw nothing
 
local DEBUGDRAW_NONE
 draw nothing
 
static const int DEBUGDRAW_SHAPE
 draw shapes
 
var DEBUGDRAW_SHAPE
 draw shapes
 
local DEBUGDRAW_SHAPE
 draw shapes
 
static const int DEBUGDRAW_JOINT
 draw joints
 
var DEBUGDRAW_JOINT
 draw joints
 
local DEBUGDRAW_JOINT
 draw joints
 
static const int DEBUGDRAW_CONTACT
 draw contact
 
var DEBUGDRAW_CONTACT
 draw contact
 
local DEBUGDRAW_CONTACT
 draw contact
 
static const int DEBUGDRAW_ALL
 draw all
 
var DEBUGDRAW_ALL
 draw all
 
local DEBUGDRAW_ALL
 draw all
 

Detailed Description

An PhysicsWorld object simulates collisions and other physical properties.

You do not create PhysicsWorld objects directly; instead, you can get it from an Scene object.

Member Function Documentation

virtual void addJoint ( PhysicsJoint joint)
virtual

Adds a joint to this physics world.

This joint will be added to this physics world at next frame.

Attention
If this joint is already added to another physics world, it will be removed from that world first and then add to this world.
Parameters
jointA pointer to an existing PhysicsJoint object.
var addJoint ( var  joint)
virtual

Adds a joint to this physics world.

This joint will be added to this physics world at next frame.

Attention
If this joint is already added to another physics world, it will be removed from that world first and then add to this world.
Parameters
jointA pointer to an existing PhysicsJoint object.
local addJoint ( local  joint)
virtual

Adds a joint to this physics world.

This joint will be added to this physics world at next frame.

Attention
If this joint is already added to another physics world, it will be removed from that world first and then add to this world.
Parameters
jointA pointer to an existing PhysicsJoint object.
virtual void removeJoint ( PhysicsJoint joint,
bool  destroy = true 
)
virtual

Remove a joint from this physics world.

If this world is not locked, the joint is removed immediately, otherwise at next frame. If this joint is connected with a body, it will be removed from the body also.

Parameters
jointA pointer to an existing PhysicsJoint object.
destroytrue this joint will be destroyed after remove from this world, false otherwise.
var removeJoint ( var  joint,
var  destroy = true 
)
virtual

Remove a joint from this physics world.

If this world is not locked, the joint is removed immediately, otherwise at next frame. If this joint is connected with a body, it will be removed from the body also.

Parameters
jointA pointer to an existing PhysicsJoint object.
destroytrue this joint will be destroyed after remove from this world, false otherwise.
local removeJoint ( local  joint,
local  destroy = true 
)
virtual

Remove a joint from this physics world.

If this world is not locked, the joint is removed immediately, otherwise at next frame. If this joint is connected with a body, it will be removed from the body also.

Parameters
jointA pointer to an existing PhysicsJoint object.
destroytrue this joint will be destroyed after remove from this world, false otherwise.
virtual void removeAllJoints ( bool  destroy = true)
virtual

Remove all joints from this physics world.

Attention
This function is invoked in the destructor of this physics world, you do not use this api in common.
Parameters
destroytrue all joints will be destroyed after remove from this world, false otherwise.
var removeAllJoints ( var  destroy = true)
virtual

Remove all joints from this physics world.

Attention
This function is invoked in the destructor of this physics world, you do not use this api in common.
Parameters
destroytrue all joints will be destroyed after remove from this world, false otherwise.
local removeAllJoints ( local  destroy = true)
virtual

Remove all joints from this physics world.

Attention
This function is invoked in the destructor of this physics world, you do not use this api in common.
Parameters
destroytrue all joints will be destroyed after remove from this world, false otherwise.
virtual void removeBody ( PhysicsBody body)
virtual

Remove a body from this physics world.

If this world is not locked, the body is removed immediately, otherwise at next frame.

Attention
If this body has joints, those joints will be removed also.
Parameters
bodyA pointer to an existing PhysicsBody object.
var removeBody ( var  body)
virtual

Remove a body from this physics world.

If this world is not locked, the body is removed immediately, otherwise at next frame.

Attention
If this body has joints, those joints will be removed also.
Parameters
bodyA pointer to an existing PhysicsBody object.
local removeBody ( local  body)
virtual

Remove a body from this physics world.

If this world is not locked, the body is removed immediately, otherwise at next frame.

Attention
If this body has joints, those joints will be removed also.
Parameters
bodyA pointer to an existing PhysicsBody object.
virtual void removeBody ( int  tag)
virtual

Remove body by tag.

If this world is not locked, the object is removed immediately, otherwise at next frame.

Attention
If this body has joints, those joints will be removed also.
Parameters
tagAn integer number that identifies a PhysicsBody object.
var removeBody ( var  tag)
virtual

Remove body by tag.

If this world is not locked, the object is removed immediately, otherwise at next frame.

Attention
If this body has joints, those joints will be removed also.
Parameters
tagAn integer number that identifies a PhysicsBody object.
local removeBody ( local  tag)
virtual

Remove body by tag.

If this world is not locked, the object is removed immediately, otherwise at next frame.

Attention
If this body has joints, those joints will be removed also.
Parameters
tagAn integer number that identifies a PhysicsBody object.
virtual void removeAllBodies ( )
virtual

Remove all bodies from physics world.

If this world is not locked, those body are removed immediately, otherwise at next frame.

var removeAllBodies ( )
virtual

Remove all bodies from physics world.

If this world is not locked, those body are removed immediately, otherwise at next frame.

local removeAllBodies ( )
virtual

Remove all bodies from physics world.

If this world is not locked, those body are removed immediately, otherwise at next frame.

void rayCast ( PhysicsRayCastCallbackFunc  func,
const Vec2 start,
const Vec2 end,
void *  data 
)

Searches for physics shapes that intersects the ray.

Query this physics world along the line segment from start to end.

Parameters
funcFunc is called for each shape found.
startA Vec2 object contains the begin position of the ray.
endA Vec2 object contains the end position of the ray.
dataUser defined data, it is passed to func.
var rayCast ( var  func,
var  start,
var  end,
var  data 
)

Searches for physics shapes that intersects the ray.

Query this physics world along the line segment from start to end.

Parameters
funcFunc is called for each shape found.
startA Vec2 object contains the begin position of the ray.
endA Vec2 object contains the end position of the ray.
dataUser defined data, it is passed to func.
local rayCast ( local  func,
local  start,
local  end,
local  data 
)

Searches for physics shapes that intersects the ray.

Query this physics world along the line segment from start to end.

Parameters
funcFunc is called for each shape found.
startA Vec2 object contains the begin position of the ray.
endA Vec2 object contains the end position of the ray.
dataUser defined data, it is passed to func.
void queryRect ( PhysicsQueryRectCallbackFunc  func,
const Rect rect,
void *  data 
)

Searches for physics shapes that contains in the rect.

Query this physics world to find all shapes overlap rect.

Parameters
funcFunc is called for each shape whose bounding box overlaps rect.
rectA Rect object contains a rectangle's x, y, width and height.
dataUser defined data, it is passed to func.
var queryRect ( var  func,
var  rect,
var  data 
)

Searches for physics shapes that contains in the rect.

Query this physics world to find all shapes overlap rect.

Parameters
funcFunc is called for each shape whose bounding box overlaps rect.
rectA Rect object contains a rectangle's x, y, width and height.
dataUser defined data, it is passed to func.
local queryRect ( local  func,
local  rect,
local  data 
)

Searches for physics shapes that contains in the rect.

Query this physics world to find all shapes overlap rect.

Parameters
funcFunc is called for each shape whose bounding box overlaps rect.
rectA Rect object contains a rectangle's x, y, width and height.
dataUser defined data, it is passed to func.
void queryPoint ( PhysicsQueryPointCallbackFunc  func,
const Vec2 point,
void *  data 
)

Searches for physics shapes that contains the point.

Attention
The point must lie inside a shape.
Parameters
funcFunc is called for each shape contains the point.
pointA Vec2 object contains the position of the point.
dataUser defined data, it is passed to func.
var queryPoint ( var  func,
var  point,
var  data 
)

Searches for physics shapes that contains the point.

Attention
The point must lie inside a shape.
Parameters
funcFunc is called for each shape contains the point.
pointA Vec2 object contains the position of the point.
dataUser defined data, it is passed to func.
local queryPoint ( local  func,
local  point,
local  data 
)

Searches for physics shapes that contains the point.

Attention
The point must lie inside a shape.
Parameters
funcFunc is called for each shape contains the point.
pointA Vec2 object contains the position of the point.
dataUser defined data, it is passed to func.
Vector<PhysicsShape*> getShapes ( const Vec2 point) const

Get physics shapes that contains the point.

All shapes contains the point will be pushed in a Vector<PhysicsShape*> object.

Attention
The point must lie inside a shape.
Parameters
pointA Vec2 object contains the position of the point.
Returns
A Vector<PhysicsShape*> object contains all found PhysicsShape pointer.
var getShapes ( var  point)

Get physics shapes that contains the point.

All shapes contains the point will be pushed in a Vector<PhysicsShape*> object.

Attention
The point must lie inside a shape.
Parameters
pointA Vec2 object contains the position of the point.
Returns
A Vector<PhysicsShape*> object contains all found PhysicsShape pointer.
local getShapes ( local  point)

Get physics shapes that contains the point.

All shapes contains the point will be pushed in a Vector<PhysicsShape*> object.

Attention
The point must lie inside a shape.
Parameters
pointA Vec2 object contains the position of the point.
Returns
A Vector<PhysicsShape*> object contains all found PhysicsShape pointer.
PhysicsShape* getShape ( const Vec2 point) const

Get the nearest physics shape that contains the point.

Query this physics world at point and return the closest shape.

Parameters
pointA Vec2 object contains the position of the point.
Returns
A PhysicsShape object pointer or nullptr if no shapes were found
var getShape ( var  point)

Get the nearest physics shape that contains the point.

Query this physics world at point and return the closest shape.

Parameters
pointA Vec2 object contains the position of the point.
Returns
A PhysicsShape object pointer or nullptr if no shapes were found
local getShape ( local  point)

Get the nearest physics shape that contains the point.

Query this physics world at point and return the closest shape.

Parameters
pointA Vec2 object contains the position of the point.
Returns
A PhysicsShape object pointer or nullptr if no shapes were found
const Vector<PhysicsBody*>
& getAllBodies
( ) const

Get all the bodies that in this physics world.

Returns
A Vector<PhysicsBody*>& object contains all bodies in this physics world.
var getAllBodies ( )

Get all the bodies that in this physics world.

Returns
A Vector<PhysicsBody*>& object contains all bodies in this physics world.
local getAllBodies ( )

Get all the bodies that in this physics world.

Returns
A Vector<PhysicsBody*>& object contains all bodies in this physics world.
PhysicsBody* getBody ( int  tag) const

Get a body by tag.

Parameters
tagAn integer number that identifies a PhysicsBody object.
Returns
A PhysicsBody object pointer or nullptr if no shapes were found.
var getBody ( var  tag)

Get a body by tag.

Parameters
tagAn integer number that identifies a PhysicsBody object.
Returns
A PhysicsBody object pointer or nullptr if no shapes were found.
local getBody ( local  tag)

Get a body by tag.

Parameters
tagAn integer number that identifies a PhysicsBody object.
Returns
A PhysicsBody object pointer or nullptr if no shapes were found.
Scene& getScene ( ) const
inline

Get a scene contain this physics world.

Attention
This value is initialized in constructor
Returns
A Scene object reference.
var getScene ( )
inline

Get a scene contain this physics world.

Attention
This value is initialized in constructor
Returns
A Scene object reference.
local getScene ( )
inline

Get a scene contain this physics world.

Attention
This value is initialized in constructor
Returns
A Scene object reference.
Vec2 getGravity ( ) const
inline

Get the gravity value of this physics world.

Returns
A Vec2 object.
var getGravity ( )
inline

Get the gravity value of this physics world.

Returns
A Vec2 object.
local getGravity ( )
inline

Get the gravity value of this physics world.

Returns
A Vec2 object.
void setGravity ( const Vec2 gravity)

set the gravity value of this physics world.

Parameters
gravityA gravity value of this physics world.
var setGravity ( var  gravity)

set the gravity value of this physics world.

Parameters
gravityA gravity value of this physics world.
local setGravity ( local  gravity)

set the gravity value of this physics world.

Parameters
gravityA gravity value of this physics world.
void setSpeed ( float  speed)
inline

Set the speed of this physics world.

Attention
if you setAutoStep(false), this won't work.
Parameters
speedA float number. Speed is the rate at which the simulation executes. default value is 1.0.
var setSpeed ( var  speed)
inline

Set the speed of this physics world.

Attention
if you setAutoStep(false), this won't work.
Parameters
speedA float number. Speed is the rate at which the simulation executes. default value is 1.0.
local setSpeed ( local  speed)
inline

Set the speed of this physics world.

Attention
if you setAutoStep(false), this won't work.
Parameters
speedA float number. Speed is the rate at which the simulation executes. default value is 1.0.
float getSpeed ( )
inline

Get the speed of this physics world.

Returns
A float number.
var getSpeed ( )
inline

Get the speed of this physics world.

Returns
A float number.
local getSpeed ( )
inline

Get the speed of this physics world.

Returns
A float number.
void setUpdateRate ( int  rate)
inline

Set the update rate of this physics world.

Update rate is the value of EngineUpdateTimes/PhysicsWorldUpdateTimes. Set it higher can improve performance, set it lower can improve accuracy of physics world simulation.

Attention
if you setAutoStep(false), this won't work.
Parameters
rateAn integer number, default value is 1.0.
var setUpdateRate ( var  rate)
inline

Set the update rate of this physics world.

Update rate is the value of EngineUpdateTimes/PhysicsWorldUpdateTimes. Set it higher can improve performance, set it lower can improve accuracy of physics world simulation.

Attention
if you setAutoStep(false), this won't work.
Parameters
rateAn integer number, default value is 1.0.
local setUpdateRate ( local  rate)
inline

Set the update rate of this physics world.

Update rate is the value of EngineUpdateTimes/PhysicsWorldUpdateTimes. Set it higher can improve performance, set it lower can improve accuracy of physics world simulation.

Attention
if you setAutoStep(false), this won't work.
Parameters
rateAn integer number, default value is 1.0.
int getUpdateRate ( )
inline

Get the update rate of this physics world.

Returns
An integer number.
var getUpdateRate ( )
inline

Get the update rate of this physics world.

Returns
An integer number.
local getUpdateRate ( )
inline

Get the update rate of this physics world.

Returns
An integer number.
void setSubsteps ( int  steps)

set the number of substeps in an update of the physics world.

One physics update will be divided into several substeps to increase its accuracy.

Parameters
stepsAn integer number, default value is 1.
var setSubsteps ( var  steps)

set the number of substeps in an update of the physics world.

One physics update will be divided into several substeps to increase its accuracy.

Parameters
stepsAn integer number, default value is 1.
local setSubsteps ( local  steps)

set the number of substeps in an update of the physics world.

One physics update will be divided into several substeps to increase its accuracy.

Parameters
stepsAn integer number, default value is 1.
int getSubsteps ( ) const
inline

Get the number of substeps of this physics world.

Returns
An integer number.
var getSubsteps ( )
inline

Get the number of substeps of this physics world.

Returns
An integer number.
local getSubsteps ( )
inline

Get the number of substeps of this physics world.

Returns
An integer number.
void setFixedUpdateRate ( int  updatesPerSecond)
inline

set the number of update of the physics world in a second.

0 - disable fixed step system default value is 0

var setFixedUpdateRate ( var  updatesPerSecond)
inline

set the number of update of the physics world in a second.

0 - disable fixed step system default value is 0

local setFixedUpdateRate ( local  updatesPerSecond)
inline

set the number of update of the physics world in a second.

0 - disable fixed step system default value is 0

void setDebugDrawMask ( int  mask)

Set the debug draw mask of this physics world.

This physics world will draw shapes and joints by DrawNode according to mask.

Parameters
maskMask has four value:DEBUGDRAW_NONE, DEBUGDRAW_SHAPE, DEBUGDRAW_JOINT, DEBUGDRAW_CONTACT and DEBUGDRAW_ALL, default is DEBUGDRAW_NONE
var setDebugDrawMask ( var  mask)

Set the debug draw mask of this physics world.

This physics world will draw shapes and joints by DrawNode according to mask.

Parameters
maskMask has four value:DEBUGDRAW_NONE, DEBUGDRAW_SHAPE, DEBUGDRAW_JOINT, DEBUGDRAW_CONTACT and DEBUGDRAW_ALL, default is DEBUGDRAW_NONE
local setDebugDrawMask ( local  mask)

Set the debug draw mask of this physics world.

This physics world will draw shapes and joints by DrawNode according to mask.

Parameters
maskMask has four value:DEBUGDRAW_NONE, DEBUGDRAW_SHAPE, DEBUGDRAW_JOINT, DEBUGDRAW_CONTACT and DEBUGDRAW_ALL, default is DEBUGDRAW_NONE
int getDebugDrawMask ( )
inline

Get the debug draw mask.

Returns
An integer number.
var getDebugDrawMask ( )
inline

Get the debug draw mask.

Returns
An integer number.
local getDebugDrawMask ( )
inline

Get the debug draw mask.

Returns
An integer number.
void setAutoStep ( bool  autoStep)
inline

To control the step of physics.

If you want control it by yourself( fixed-timestep for example ), you can set this to false and call step by yourself.

Attention
If you set auto step to false, setSpeed setSubsteps and setUpdateRate won't work, you need to control the time step by yourself.
Parameters
autoStepA bool object, default value is true.
var setAutoStep ( var  autoStep)
inline

To control the step of physics.

If you want control it by yourself( fixed-timestep for example ), you can set this to false and call step by yourself.

Attention
If you set auto step to false, setSpeed setSubsteps and setUpdateRate won't work, you need to control the time step by yourself.
Parameters
autoStepA bool object, default value is true.
local setAutoStep ( local  autoStep)
inline

To control the step of physics.

If you want control it by yourself( fixed-timestep for example ), you can set this to false and call step by yourself.

Attention
If you set auto step to false, setSpeed setSubsteps and setUpdateRate won't work, you need to control the time step by yourself.
Parameters
autoStepA bool object, default value is true.
bool isAutoStep ( )
inline

Get the auto step of this physics world.

Returns
A bool object.
var isAutoStep ( )
inline

Get the auto step of this physics world.

Returns
A bool object.
local isAutoStep ( )
inline

Get the auto step of this physics world.

Returns
A bool object.
void step ( float  delta)

The step for physics world.

The times passing for simulate the physics.

Attention
You need to setAutoStep(false) first before it can work.
Parameters
deltaA float number.
var step ( var  delta)

The step for physics world.

The times passing for simulate the physics.

Attention
You need to setAutoStep(false) first before it can work.
Parameters
deltaA float number.
local step ( local  delta)

The step for physics world.

The times passing for simulate the physics.

Attention
You need to setAutoStep(false) first before it can work.
Parameters
deltaA float number.

The documentation for this class was generated from the following file: