fix: simplify BonusAnimation

pull/191/head
arturplaczek 3 years ago
parent f5aab1c5f1
commit ffc84788f9

@ -1,7 +1,6 @@
// ignore_for_file: public_member_api_docs
import 'package:flame/flame.dart';
import 'package:flame/image_composition.dart';
import 'package:flame/sprite.dart';
import 'package:flame/widgets.dart';
import 'package:flutter/material.dart' hide Image;
@ -45,18 +44,20 @@ class BonusAnimation extends StatelessWidget {
final VoidCallback? onCompleted;
@override
Widget build(BuildContext context) {
static Future<void> loadAssets() {
Flame.images.prefix = '';
return Flame.images.loadAll([
Assets.images.bonusAnimation.dashNest.keyName,
Assets.images.bonusAnimation.sparkyTurboCharge.keyName,
Assets.images.bonusAnimation.dino.keyName,
// TODO: add google word animation asset here
]);
}
// TODO(arturplaczek): Load assets in parent widget, remove future builder
// and user image from cache.
return FutureBuilder<Image>(
future: Flame.images.load(imagePath),
builder: (BuildContext context, AsyncSnapshot<Image> snapshot) {
if (snapshot.hasData) {
@override
Widget build(BuildContext context) {
final spriteSheet = SpriteSheet.fromColumnsAndRows(
image: snapshot.data!,
image: Flame.images.fromCache(imagePath),
columns: 8,
rows: 9,
);
@ -82,9 +83,4 @@ class BonusAnimation extends StatelessWidget {
),
);
}
return const SizedBox();
},
);
}
}

@ -1,2 +1,3 @@
export 'bonus_animation.dart';
export 'game_hud.dart';
export 'play_button_overlay.dart';

@ -1,10 +1,8 @@
import 'dart:async';
import 'dart:typed_data';
import 'dart:ui' as ui;
import 'package:flame/assets.dart';
import 'package:flame/flame.dart';
import 'package:flame/widgets.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
@ -17,17 +15,12 @@ class MockImage extends Mock implements ui.Image {}
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
final image = decodeImageFromList(Uint8List.fromList(transparentImage));
late Images images;
setUp(() {
images = MockImages();
when(() => images.load(any())).thenAnswer((_) => image);
Flame.images = images;
setUp(() async {
await BonusAnimation.loadAssets();
});
group('renders SpriteAnimationWidget for', () {
group('loads correctly SpriteAnimationWidget for', () {
testWidgets('dashNest', (tester) async {
await tester.runAsync(() async {
await tester.pumpWidget(

Loading…
Cancel
Save