Previously we only return the first point in the collision callback, now we return a python proxy (KX_CollisionContactPoints) which contains a
variable for the number of point (KX_CollisionContactPoints.numPoints) and return some contact point info :
KX_CollisionContactPointList.getContactPoint(index)
return a KX_CollisionContactPoint :
KX_CollisionContactPoint.localPointA KX_CollisionContactPoint.localPointB KX_CollisionContactPoint.worldPoint KX_CollisionContactPoint.normal KX_CollisionContactPoint.combinedFriction KX_CollisionContactPoint.combinedRestitution KX_CollisionContactPoint.appliedImpulse
example :
def onCollision(other, pointList):
for i in range(pointList.numPoints):
point = pointList.getContactPoint(i)
print(point.localPointA, point.localPointB, point.worldPoint, point.normal, point.appliedImpulse)
obj.collisionCallbacks = [onCollision]depends of D1363.