constrain method

  1. @override
void constrain(
  1. Node node,
  2. double dt
)
override

Called after update is complete, if the constraint has been added to a Node. Override this method to modify the node's property according to the constraint.

Implementation

@override
void constrain(Node node, double dt) {
  Offset offset;

  if (targetNode.spriteBox != node.spriteBox) {
    // The target node is in another sprite box or has been removed
    return;
  }

  if (targetNode.parent == node.parent) {
    offset = targetNode.position - node.position;
  } else {
    offset = node.convertPointToBoxSpace(Offset.zero) -
        targetNode.convertPointToBoxSpace(Offset.zero);
  }

  double target =
      degrees(GameMath.atan2(offset.dy, offset.dx)) + baseRotation;

  node.rotation = _dampenRotation(node.rotation, target, dampening);
}