paint method
void
paint(
- Canvas canvas,
- Size size,
- double progress,
- Offset center,
- Color color, {
- double radiusMultiplier = 1.0,
- Offset positionOffset = Offset.zero,
override
Implementation
@override
void paint(
Canvas canvas, Size size, double progress, Offset center, Color color,
{double radiusMultiplier = 1.0, Offset positionOffset = Offset.zero}) {
// Mempercepat progress dengan speedFactor
// Ketika speedFactor = 1.5, akan mencapai progress 1.0 saat actual progress 0.67
final adjustedProgress = math.min(1.0, progress * speedFactor);
final adjustedCenter = center + positionOffset;
// Menentukan radius widget
final widgetRadius = math.min(size.width, size.height) * 0.5;
// Menggambar core glow
_drawCoreGlow(
canvas, adjustedCenter, widgetRadius, color, adjustedProgress);
// Gambar implosion rays (dari luar ke dalam)
if (enableImplosion) {
_drawImplosionRays(canvas, adjustedCenter, widgetRadius, color,
adjustedProgress, radiusMultiplier);
}
// Gambar explosion rays (dari dalam ke luar)
if (enableExplosion) {
_drawExplosionRays(canvas, adjustedCenter, widgetRadius, color,
adjustedProgress, radiusMultiplier);
}
}