xkeyhit18= xKeyHit(1
xCameraPick(cam,xMouseX(),xMouseY())
If control_body=0 And xkeyhit18=1
pxRaySetPosition ray,xEntityX(cam,1),xEntityY(cam,1), xEntityZ(cam,1)
pxRaySetDir(ray, xPickedX#() - xEntityX(cam,1), xPickedY#() - xEntityY(cam,1), xPickedZ#() - xEntityZ(cam,1))
cpos_x = pxRayGetPickX(ray,1)
cpos_y = pxRayGetPickY(ray,1)
cpos_z = pxRayGetPickZ(ray,1)
picked_body = pxRayGetBody(ray, 1)
If (picked_body)
control_body = pxBodyCreateSphere(1,1)
pxBodySetPosition(control_body,pxRayGetPickX#(ray, 1),pxRayGetPickY#(ray,1),pxRayGetPickZ#(ray,1))
pxKinematicSet(control_body)
pxBodySetFlagResponse(control_body, 0)
Pick_pos_x# = cpos_x - pxBodyGetPositionX#(picked_body)
Pick_pos_y# = cpos_y - pxBodyGetPositionY#(picked_body)
Pick_pos_z# = cpos_z - pxBodyGetPositionZ#(picked_body)
cJoint = pxJointCreateDistance(picked_body, control_body, Pick_pos_x, Pick_pos_y, Pick_pos_z, 0, 0, 0)
pxJointDistanceSetPoint(cJoint, 0,1)
pxJointSetBreakable (cJoint,550,100000000000)
EndIf
EndIf
;EndIf
If xkeyhit18=1 And control_body=1
pxDeleteBody(control_body)
control_body = 0
pxDeleteJoint(cJoint)
cJoint = 0
EndIf
If control_body
pxBodySetRotation picked_body,0,0,0
pxKinematicSetPosition (control_body, xEntityX(point,1),xEntityY(point,1), xEntityZ(point,1))
jointb=pxJointIsBroken (cJoint)
EndIf
If jointb
pxDeleteBody(control_body)
control_body = 0
pxDeleteJoint(cJoint)
cJoint = 0
EndIf