moveTowardsTarget<T extends GameComponent> method
bool
moveTowardsTarget<T extends GameComponent>({
- required T target,
- void close()?,
- double margin = 4,
- MovementAxis movementAxis = MovementAxis.all,
This method move this component to target Need use Movement mixin. Method that bo used in update method. return true if moved.
Implementation
bool moveTowardsTarget<T extends GameComponent>({
required T target,
void Function()? close,
double margin = 4,
MovementAxis movementAxis = MovementAxis.all,
}) {
final rectPlayerCollision = target.rectCollision.inflate(margin);
if (rectCollision.overlaps(rectPlayerCollision)) {
close?.call();
stop();
return false;
}
final radAngle = getAngleToTarget(target);
var directionToMove = BonfireUtil.getDirectionFromAngle(
radAngle,
);
final newDirectionToMove = _checkRestrictAxis(
directionToMove,
movementAxis,
);
if (newDirectionToMove != null) {
directionToMove = newDirectionToMove;
} else {
stop();
return false;
}
if (canMove(directionToMove, ignoreHitboxes: target.shapeHitboxes)) {
moveFromDirection(directionToMove, resetCrossAxis: true);
return true;
} else {
stop();
return false;
}
}