Physics Constraints (bge.constraints)

Basic Physics Constraint

Example of how to create a hinge Physics Constraint between two objects.

from bge import logic
from bge import constraints

# get object list
objects = logic.getCurrentScene().objects

# get object named Object1 and Object 2
object_1 = objects["Object1"]
object_2 = objects["Object2"]

# want to use Edge constraint type
constraint_type = 2

# get Object1 and Object2 physics IDs
physics_id_1 = object_1.getPhysicsId()
physics_id_2 = object_2.getPhysicsId()

# use bottom right edge of Object1 for hinge position
edge_position_x = 1.0
edge_position_y = 0.0
edge_position_z = -1.0

# rotate the pivot z axis about 90 degrees
edge_angle_x = 0.0
edge_angle_y = 0.0
edge_angle_z = 90.0

# create an edge constraint
constraints.createConstraint(physics_id_1, physics_id_2,
                             constraint_type,
                             edge_position_x, edge_position_y, edge_position_z,
                             edge_angle_x, edge_angle_y, edge_angle_z)
bge.constraints.createConstraint(physicsid_1, physicsid_2, constraint_type, pivot_x=0.0, pivot_y=0.0, pivot_z=0.0, axis_x=0.0, axis_y=0.0, axis_z=0.0, flag=0)

Creates a constraint.

Parameters:
Returns:

A constraint wrapper.

Return type:

KX_ConstraintWrapper

bge.constraints.exportBulletFile(filename)

Exports a file representing the dynamics world (usually using .bullet extension).

See Bullet binary serialization.

Parameters:filename (str) – Absolute filepath.
bge.constraints.getAppliedImpulse(constraintId)
Parameters:constraintId (int) – The id of the constraint.
Returns:The most recent applied impulse.
Return type:float
bge.constraints.getVehicleConstraint(constraintId)
Parameters:constraintId (int) – The id of the vehicle constraint.
Returns:A vehicle constraint object.
Return type:KX_VehicleWrapper
bge.constraints.getCharacter(gameobj)
Parameters:gameobj (KX_GameObject) – The game object with the character physics.
Returns:Character wrapper.
Return type:KX_CharacterWrapper
bge.constraints.removeConstraint(constraintId)

Removes a constraint.

Parameters:constraintId (int) – The id of the constraint to be removed.
bge.constraints.setCcdMode(ccdMode)

Note

Very experimental, not recommended

Sets the CCD (Continous Colision Detection) mode in the Physics Environment.

Parameters:ccdMode (int) – The new CCD mode.
bge.constraints.setContactBreakingTreshold(breakingTreshold)

Note

Reasonable default is 0.02 (if units are meters)

Sets tresholds to do with contact point management.

Parameters:breakingTreshold (float) – The new contact breaking treshold.
bge.constraints.setDeactivationAngularTreshold(angularTreshold)

Sets the angular velocity treshold.

Parameters:angularTreshold (float) – New deactivation angular treshold.
bge.constraints.setDeactivationLinearTreshold(linearTreshold)

Sets the linear velocity treshold.

Parameters:linearTreshold (float) – New deactivation linear treshold.
bge.constraints.setDeactivationTime(time)

Sets the time after which a resting rigidbody gets deactived.

Parameters:time (float) – The deactivation time.
bge.constraints.setDebugMode(mode)

Sets the debug mode.

Parameters:mode (int) –

The new debug mode.

bge.constraints.setGravity(x, y, z)

Sets the gravity force.

Parameters:
  • x (float) – Gravity X force.
  • y (float) – Gravity Y force.
  • z (float) – Gravity Z force.
bge.constraints.setLinearAirDamping(damping)

Note

Not implemented

Sets the linear air damping for rigidbodies.

bge.constraints.setNumIterations(numiter)

Sets the number of iterations for an iterative constraint solver.

Parameters:numiter (int) – New number of iterations.
bge.constraints.setNumTimeSubSteps(numsubstep)

Sets the number of substeps for each physics proceed. Tradeoff quality for performance.

Parameters:numsubstep (int) – New number of substeps.
bge.constraints.setSolverDamping(damping)

Note

Very experimental, not recommended

Sets the damper constant of a penalty based solver.

Parameters:damping (float) – New damping for the solver.
bge.constraints.setSolverTau(tau)

Note

Very experimental, not recommended

Sets the spring constant of a penalty based solver.

Parameters:tau (float) – New tau for the solver.
bge.constraints.setSolverType(solverType)

Note

Very experimental, not recommended

Sets the solver type.

Parameters:solverType (int) – The new type of the solver.
bge.constraints.setSorConstant(sor)

Note

Very experimental, not recommended

Sets the successive overrelaxation constant.

Parameters:sor (float) – New sor value.
bge.constraints.setUseEpa(epa)

Note

Not implemented

Constants

bge.constraints.error

Symbolic constant string that indicates error.

Type:str

Debug Mode Constants

Debug mode to be used with function setDebugMode()

bge.constraints.DBG_NODEBUG

No debug.

bge.constraints.DBG_DRAWWIREFRAME

Draw wireframe in debug.

bge.constraints.DBG_DRAWAABB

Draw Axis Aligned Bounding Box in debug.

bge.constraints.DBG_DRAWFREATURESTEXT

Draw features text in debug.

bge.constraints.DBG_DRAWCONTACTPOINTS

Draw contact points in debug.

bge.constraints.DBG_NOHELPTEXT

Debug without help text.

bge.constraints.DBG_DRAWTEXT

Draw text in debug.

bge.constraints.DBG_PROFILETIMINGS

Draw profile timings in debug.

bge.constraints.DBG_ENABLESATCOMPARISION

Enable sat comparision in debug.

bge.constraints.DBG_DISABLEBULLETLCP

Disable Bullet LCP.

bge.constraints.DBG_ENABLECCD

Enable Continous Collision Detection in debug.

bge.constraints.DBG_DRAWCONSTRAINTS

Draw constraints in debug.

bge.constraints.DBG_DRAWCONSTRAINTLIMITS

Draw constraint limits in debug.

bge.constraints.DBG_FASTWIREFRAME

Draw a fast wireframe in debug.

Create Constraint Constants

Constraint type to be used with function createConstraint()

bge.constraints.POINTTOPOINT_CONSTRAINT
bge.constraints.LINEHINGE_CONSTRAINT
bge.constraints.ANGULAR_CONSTRAINT
bge.constraints.CONETWIST_CONSTRAINT
bge.constraints.VEHICLE_CONSTRAINT
bge.constraints.GENERIC_6DOF_CONSTRAINT