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/gen/assets.gen.dart';
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.
extension PinballGameAssetsX on PinballGame {
/// Returns a list of assets to be loaded
List<Future> preLoadAssets() {
const dashTheme = DashTheme();
const sparkyTheme = SparkyTheme();
const androidTheme = AndroidTheme();
const dinoTheme = DinoTheme();
return [
images.load(components.Assets.images.ball.ball.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.letter6.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),
];
}

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

@ -16,7 +16,7 @@ class BackboardGameOverGame extends BasicKeyboardGame {
final int score;
final String character;
final characterIconPaths = <String, String>{
static final characterIconPaths = <String, String>{
'Dash': Assets.images.dash.leaderboardIcon.keyName,
'Sparky': Assets.images.sparky.leaderboardIcon.keyName,
'Android': Assets.images.android.leaderboardIcon.keyName,
@ -29,6 +29,8 @@ class BackboardGameOverGame extends BasicKeyboardGame {
..followVector2(Vector2.zero())
..zoom = 5;
await images.loadAll(characterIconPaths.values.toList());
await add(
Backboard.gameOver(
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';
void addBackboardStories(Dashbook dashbook) {
final characters = ['Dash', 'Sparky', 'Android', 'Dino'];
dashbook.storiesOf('Backboard')
..add(
'Waiting mode',
@ -22,8 +21,8 @@ void addBackboardStories(Dashbook dashbook) {
context.numberProperty('Score', 9000000000).toInt(),
context.listProperty(
'Character',
characters.first,
characters,
BackboardGameOverGame.characterIconPaths.keys.first,
BackboardGameOverGame.characterIconPaths.keys.toList(),
),
),
),

Loading…
Cancel
Save