Hi guys, I am half way though making a crane simulator in the blender game engine (blender v2.69) and I am having trouble with the removeConstraint() function. I think this is down to not being able to properly get the ID of the constraint I made by pressing the ‘H’ key. Creating the constraint works fine but it throws an error on the line ‘const1_ID = const1.constraint_id’. Apparently the const1 isn’t defined. Does anyone know how to resolve this issue?
Here is the code that I’m testing:
from bge import logic
from bge import constraints
keyboard = bge.logic.keyboard
JUST_ACTIVATED = bge.logic.KX_INPUT_JUST_ACTIVATED
cont = bge.logic.getCurrentController()
own = cont.owner
# get object list
objects = logic.getCurrentScene().objects
object_1 = objects["Hook"]
object_2 = objects["Block"]
# Use ball-joint type constraint
constraint_type = 1
# get Object1 and Object2 physics IDs
physics_id_1 = object_1.getPhysicsId()
physics_id_2 = object_2.getPhysicsId()
# Center-bottom of Object1 for joint position
edge_position_x = 0.0
edge_position_y = 0.0
edge_position_z = -1.0
# use Object1 y axis for angle to point hinge
edge_angle_x = 0.0
edge_angle_y = 0.0
edge_angle_z = 0.0
# create a constraint
if keyboard.events[bge.events.HKEY] == JUST_ACTIVATED:
const1 = 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)
const1_ID = const1.constraint_id
if keyboard.events[bge.events.JKEY] == JUST_ACTIVATED:
constraints.removeConstraint(own.constraint_ID)