import 'dart:math'; import 'package:firo_runner/MovingObject.dart'; import 'package:firo_runner/main.dart'; import 'package:flame/components.dart'; enum PlatformState { normal } class Platform extends MovingObject { List removeChildren = []; Platform(MyGame gameRef) : super(gameRef) { var random = Random(); int version = random.nextInt(3) + 1; var platform = gameRef.platformHolder.getPlatform(version); SpriteAnimation normal = SpriteAnimation.fromFrameData( platform, SpriteAnimationData.sequenced( amount: 7, stepTime: 0.1, textureSize: Vector2(800, 510), ), ); sprite = SpriteAnimationGroupComponent( animations: { PlatformState.normal: normal, }, current: PlatformState.normal, ); sprite.changePriorityWithoutResorting(PLATFORM_PRIORITY); setSize( gameRef.blockSize * (platform!.width / platform!.height / 7), gameRef.blockSize, ); } double getRightEnd() { return sprite.position.x + sprite.width; } void remove() { if (removeChildren.isNotEmpty) { for (Function removeChild in removeChildren) { removeChild(); } } } }