seeComponentType<T extends GameComponent> method
PolygonShape?
seeComponentType<T extends GameComponent>({
- required void observed(
- List<
T>
- List<
- VoidCallback? notObserved,
- double radiusVision = 32,
- double? visionAngle,
- double angle = 3.14159,
This method we notify when detect components by type when enter
in radiusVision
configuration
Method that bo used in update method.
visionAngle
in radians
angle
in radians.
Implementation
PolygonShape? seeComponentType<T extends GameComponent>({
required void Function(List<T>) observed,
VoidCallback? notObserved,
double radiusVision = 32,
double? visionAngle,
double angle = 3.14159,
}) {
final compVisible = gameRef.visibles<T>();
if (compVisible.isEmpty) {
notObserved?.call();
return _currentShape = null;
}
final shape = _getShapeVision(radiusVision, visionAngle, angle);
final compObserved = compVisible.where((comp) {
return _canSee(shape, comp, radiusVision);
}).toList();
if (compObserved.isNotEmpty) {
observed(compObserved);
} else {
notObserved?.call();
}
return _currentShape = shape;
}