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, pivot_y, pivot_z, axis_x, axis_y, axis_z, flag)

Creates a constraint.

Parameters:
  • physicsid_1 – the physics id of the first object in constraint
  • physicsid_2 – the physics id of the second object in constraint
  • constrainttype (int - POINTTOPOINT_CONSTRAINT - LINEHINGE_CONSTRAINT - ANGULAR_CONSTRAINT - CONETWIST_CONSTRAINT - VEHICLE_CONSTRAINT - GENERIC_6DOF_CONSTRAINT) – the type of the constraint. The constraint types are:
  • pivot_X (float (optional)) – pivot X position
  • pivot_Y (float (optional)) – pivot Y position
  • pivot_Z (float (optional)) – pivot Z position
  • axis_X (float (optional)) – X axis angle in degrees
  • axis_Y (float (optional)) – Y axis angle in degrees
  • axis_Z (float (optional)) – Z axis angle in degrees
  • flag (int (optional)) – 128 to disable collision between linked bodies
Returns:

a constraint wrapper.

Return type:

bge.types.KX_ConstraintWrapper

bge.constraints.error

Symbolic constant string that indicates error.

bge.constraints.exportBulletFile(filename)

export a .bullet file

Parameters:filename (string) – File name
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:bge.types.KX_VehicleWrapper
bge.constraints.getCharacter(gameobj)
Parameters:gameobj (bge.types.KX_GameObject) – The game object with the character physics.
Returns:character wrapper
Return type:bge.types.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.

Debug modes:
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)

Not implemented.

bge.constraints.DBG_NODEBUG

Note

Debug mode to be used with function setDebugMode

No debug.

bge.constraints.DBG_DRAWWIREFRAME

Note

Debug mode to be used with function setDebugMode

Draw wireframe in debug.

bge.constraints.DBG_DRAWAABB

Note

Debug mode to be used with function setDebugMode

Draw Axis Aligned Bounding Box in debug.

bge.constraints.DBG_DRAWFREATURESTEXT

Note

Debug mode to be used with function setDebugMode

Draw freatures text in debug.

bge.constraints.DBG_DRAWCONTACTPOINTS

Note

Debug mode to be used with function setDebugMode

Draw contact points in debug.

bge.constraints.DBG_NOHELPTEXT

Note

Debug mode to be used with function setDebugMode

Debug without help text.

bge.constraints.DBG_DRAWTEXT

Note

Debug mode to be used with function setDebugMode

Draw text in debug.

bge.constraints.DBG_PROFILETIMINGS

Note

Debug mode to be used with function setDebugMode

Draw profile timings in debug.

bge.constraints.DBG_ENABLESATCOMPARISION

Note

Debug mode to be used with function setDebugMode

Enable sat comparision in debug.

bge.constraints.DBG_DISABLEBULLETLCP

Note

Debug mode to be used with function setDebugMode

Disable Bullet LCP.

bge.constraints.DBG_ENABLECCD

Note

Debug mode to be used with function setDebugMode

Enable Continous Colision Detection in debug.

bge.constraints.DBG_DRAWCONSTRAINTS

Note

Debug mode to be used with function setDebugMode

Draw constraints in debug.

bge.constraints.DBG_DRAWCONSTRAINTLIMITS

Note

Debug mode to be used with function setDebugMode

Draw constraint limits in debug.

bge.constraints.DBG_FASTWIREFRAME

Note

Debug mode to be used with function setDebugMode

Draw a fast wireframe in debug.

bge.constraints.POINTTOPOINT_CONSTRAINT

Note

Constraint type to be used with function createConstraint

bge.constraints.LINEHINGE_CONSTRAINT

Note

Constraint type to be used with function createConstraint

bge.constraints.ANGULAR_CONSTRAINT

Note

Constraint type to be used with function createConstraint

bge.constraints.CONETWIST_CONSTRAINT

Note

Constraint type to be used with function createConstraint

bge.constraints.VEHICLE_CONSTRAINT

Note

Constraint type to be used with function createConstraint

bge.constraints.GENERIC_6DOF_CONSTRAINT

Note

Constraint type to be used with function createConstraint