Merge branch 'develop' into v1.0.0

This commit is contained in:
Erick Zanardo
2020-08-31 22:25:47 -03:00
5 changed files with 29 additions and 9 deletions

View File

@ -4,6 +4,10 @@
- Move all box2d related code and examples to the flame_box2d repo
- Rename Animation to SpriteAnimation
## 0.26.0
- Improving Flame image auto cache
- Fix bug in the Box2DGame's add and addLater method , when the Component extends BodyComponent and mixin HasGameRef or other mixins ,the mixins will not be set correctly
## 0.25.0
- Externalizing Tiled support to its own package `flame_tiled`
- Preventing some crashs that could happen on web when some methods were called

View File

@ -18,7 +18,7 @@ Put the pub package as your dependency by dropping the following in your `pubspe
```yaml
dependencies:
flame: ^0.25.0
flame: ^0.26.0
```
And start using it!

View File

@ -51,6 +51,9 @@ class MyGame extends BaseGame {
Offset cellSize;
Offset halfCellSize;
@override
bool recordFps() => true;
MyGame({
Size screenSize,
}) {
@ -292,7 +295,7 @@ class MyGame extends BaseGame {
Particle imageParticle() {
return ImageParticle(
size: const Size.square(24),
image: Flame.images.loadedFiles['zap.png'],
image: Flame.images.loadedFiles['zap.png'].loadedImage,
);
}
@ -522,7 +525,7 @@ class MyGame extends BaseGame {
const rows = 8;
const frames = columns * rows;
const imagePath = 'boom3.png';
final spriteImage = Flame.images.loadedFiles[imagePath];
final spriteImage = Flame.images.loadedFiles[imagePath].loadedImage;
final spritesheet = SpriteSheet(
rows: rows,
columns: columns,

View File

@ -6,7 +6,7 @@ import 'dart:convert' show base64;
import 'package:flame/flame.dart';
class Images {
Map<String, Image> loadedFiles = {};
Map<String, ImageAssetLoader> loadedFiles = {};
void clear(String fileName) {
loadedFiles.remove(fileName);
@ -22,16 +22,16 @@ class Images {
Future<Image> load(String fileName) async {
if (!loadedFiles.containsKey(fileName)) {
loadedFiles[fileName] = await _fetchToMemory(fileName);
loadedFiles[fileName] = ImageAssetLoader(_fetchToMemory(fileName));
}
return loadedFiles[fileName];
return await loadedFiles[fileName].retreive();
}
Future<Image> fromBase64(String fileName, String base64) async {
if (!loadedFiles.containsKey(fileName)) {
loadedFiles[fileName] = await _fetchFromBase64(base64);
loadedFiles[fileName] = ImageAssetLoader(_fetchFromBase64(base64));
}
return loadedFiles[fileName];
return await loadedFiles[fileName].retreive();
}
Future<Image> _fetchFromBase64(String base64Data) async {
@ -52,3 +52,16 @@ class Images {
return completer.future;
}
}
class ImageAssetLoader {
ImageAssetLoader(this.future);
Image loadedImage;
Future<Image> future;
Future<Image> retreive() async {
loadedImage ??= await future;
return loadedImage;
}
}

View File

@ -1,6 +1,6 @@
name: flame
description: A minimalist Flutter game engine, provides a nice set of somewhat independent modules you can choose from.
version: 0.25.0
version: 0.26.0
homepage: https://github.com/flame-engine/flame
dependencies: