refactor: load from cache

pull/209/head
Allison Ryan 3 years ago
parent 21cac3bba2
commit 1b95c3d27a

@ -1,11 +1,17 @@
import 'package:pinball/game/game.dart'; import 'package:pinball/game/game.dart';
import 'package:pinball/gen/assets.gen.dart'; import 'package:pinball/gen/assets.gen.dart';
import 'package:pinball_components/pinball_components.dart' as components; import 'package:pinball_components/pinball_components.dart' as components;
import 'package:pinball_theme/pinball_theme.dart' hide Assets;
/// Add methods to help loading and caching game assets. /// Add methods to help loading and caching game assets.
extension PinballGameAssetsX on PinballGame { extension PinballGameAssetsX on PinballGame {
/// Returns a list of assets to be loaded /// Returns a list of assets to be loaded
List<Future> preLoadAssets() { List<Future> preLoadAssets() {
const dashTheme = DashTheme();
const sparkyTheme = SparkyTheme();
const androidTheme = AndroidTheme();
const dinoTheme = DinoTheme();
return [ return [
images.load(components.Assets.images.ball.ball.keyName), images.load(components.Assets.images.ball.ball.keyName),
images.load(components.Assets.images.ball.flameEffect.keyName), images.load(components.Assets.images.ball.flameEffect.keyName),
@ -93,6 +99,10 @@ extension PinballGameAssetsX on PinballGame {
images.load(components.Assets.images.googleWord.letter5.keyName), images.load(components.Assets.images.googleWord.letter5.keyName),
images.load(components.Assets.images.googleWord.letter6.keyName), images.load(components.Assets.images.googleWord.letter6.keyName),
images.load(components.Assets.images.backboard.display.keyName), images.load(components.Assets.images.backboard.display.keyName),
images.load(dashTheme.leaderboardIcon.keyName),
images.load(sparkyTheme.leaderboardIcon.keyName),
images.load(androidTheme.leaderboardIcon.keyName),
images.load(dinoTheme.leaderboardIcon.keyName),
images.load(Assets.images.components.background.path), images.load(Assets.images.components.background.path),
]; ];
} }

@ -1,7 +1,6 @@
import 'dart:async'; import 'dart:async';
import 'dart:math'; import 'dart:math';
import 'package:flame/assets.dart';
import 'package:flame/components.dart'; import 'package:flame/components.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:pinball_components/pinball_components.dart'; import 'package:pinball_components/pinball_components.dart';
@ -125,7 +124,7 @@ class _ScoreTextComponent extends TextComponent {
); );
} }
class _CharacterIconSpriteComponent extends SpriteComponent { class _CharacterIconSpriteComponent extends SpriteComponent with HasGameRef {
_CharacterIconSpriteComponent(String characterIconPath) _CharacterIconSpriteComponent(String characterIconPath)
: _characterIconPath = characterIconPath, : _characterIconPath = characterIconPath,
super( super(
@ -138,10 +137,7 @@ class _CharacterIconSpriteComponent extends SpriteComponent {
@override @override
Future<void> onLoad() async { Future<void> onLoad() async {
await super.onLoad(); await super.onLoad();
final sprite = await Sprite.load( final sprite = Sprite(gameRef.images.fromCache(_characterIconPath));
_characterIconPath,
images: Images(prefix: ''),
);
this.sprite = sprite; this.sprite = sprite;
size = sprite.originalSize / 10; size = sprite.originalSize / 10;
} }

@ -16,7 +16,7 @@ class BackboardGameOverGame extends BasicKeyboardGame {
final int score; final int score;
final String character; final String character;
final characterIconPaths = <String, String>{ static final characterIconPaths = <String, String>{
'Dash': Assets.images.dash.leaderboardIcon.keyName, 'Dash': Assets.images.dash.leaderboardIcon.keyName,
'Sparky': Assets.images.sparky.leaderboardIcon.keyName, 'Sparky': Assets.images.sparky.leaderboardIcon.keyName,
'Android': Assets.images.android.leaderboardIcon.keyName, 'Android': Assets.images.android.leaderboardIcon.keyName,
@ -29,6 +29,8 @@ class BackboardGameOverGame extends BasicKeyboardGame {
..followVector2(Vector2.zero()) ..followVector2(Vector2.zero())
..zoom = 5; ..zoom = 5;
await images.loadAll(characterIconPaths.values.toList());
await add( await add(
Backboard.gameOver( Backboard.gameOver(
position: Vector2(0, 20), position: Vector2(0, 20),

@ -5,7 +5,6 @@ import 'package:sandbox/stories/backboard/backboard_game_over_game.dart';
import 'package:sandbox/stories/backboard/backboard_waiting_game.dart'; import 'package:sandbox/stories/backboard/backboard_waiting_game.dart';
void addBackboardStories(Dashbook dashbook) { void addBackboardStories(Dashbook dashbook) {
final characters = ['Dash', 'Sparky', 'Android', 'Dino'];
dashbook.storiesOf('Backboard') dashbook.storiesOf('Backboard')
..add( ..add(
'Waiting mode', 'Waiting mode',
@ -22,8 +21,8 @@ void addBackboardStories(Dashbook dashbook) {
context.numberProperty('Score', 9000000000).toInt(), context.numberProperty('Score', 9000000000).toInt(),
context.listProperty( context.listProperty(
'Character', 'Character',
characters.first, BackboardGameOverGame.characterIconPaths.keys.first,
characters, BackboardGameOverGame.characterIconPaths.keys.toList(),
), ),
), ),
), ),

Loading…
Cancel
Save