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 // ignore_for_file: public_member_api_docs
import 'package:flame/flame.dart'; import 'package:flame/flame.dart';
import 'package:flame/image_composition.dart';
import 'package:flame/sprite.dart'; import 'package:flame/sprite.dart';
import 'package:flame/widgets.dart'; import 'package:flame/widgets.dart';
import 'package:flutter/material.dart' hide Image; import 'package:flutter/material.dart' hide Image;
@ -45,18 +44,20 @@ class BonusAnimation extends StatelessWidget {
final VoidCallback? onCompleted; final VoidCallback? onCompleted;
@override static Future<void> loadAssets() {
Widget build(BuildContext context) {
Flame.images.prefix = ''; 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 @override
// and user image from cache. Widget build(BuildContext context) {
return FutureBuilder<Image>(
future: Flame.images.load(imagePath),
builder: (BuildContext context, AsyncSnapshot<Image> snapshot) {
if (snapshot.hasData) {
final spriteSheet = SpriteSheet.fromColumnsAndRows( final spriteSheet = SpriteSheet.fromColumnsAndRows(
image: snapshot.data!, image: Flame.images.fromCache(imagePath),
columns: 8, columns: 8,
rows: 9, 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 'game_hud.dart';
export 'play_button_overlay.dart'; export 'play_button_overlay.dart';

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

Loading…
Cancel
Save