mirror of
https://github.com/flame-engine/flame.git
synced 2025-11-02 11:43:19 +08:00
Adding SpriteSheet.fromImage
This commit is contained in:
@ -1,54 +1,82 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flame/components/animation_component.dart';
|
||||
import 'package:flame/components/component.dart';
|
||||
import 'package:flame/flame.dart';
|
||||
import 'package:flame/game.dart';
|
||||
import 'package:flame/spritesheet.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:dashbook/dashbook.dart';
|
||||
|
||||
void main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
final Size size = await Flame.util.initialDimensions();
|
||||
final game = MyGame(size);
|
||||
runApp(game.widget);
|
||||
|
||||
final spriteSheet = SpriteSheet(
|
||||
imageName: 'spritesheet.png',
|
||||
textureWidth: 16,
|
||||
textureHeight: 18,
|
||||
columns: 11,
|
||||
rows: 2,
|
||||
);
|
||||
|
||||
final spriteSheetFromImage = SpriteSheet.fromImage(
|
||||
image: await Flame.images.load('spritesheet.png'),
|
||||
textureWidth: 16,
|
||||
textureHeight: 18,
|
||||
columns: 11,
|
||||
rows: 2,
|
||||
);
|
||||
|
||||
final dashbook = Dashbook();
|
||||
|
||||
dashbook
|
||||
.storiesOf('SpriteSheet')
|
||||
.add('defaut', (_) => GameWrapper(MyGame(spriteSheet)))
|
||||
.add('fromImage', (_) => GameWrapper(MyGame(spriteSheetFromImage)));
|
||||
|
||||
runApp(dashbook);
|
||||
}
|
||||
|
||||
class GameWrapper extends StatelessWidget {
|
||||
final Game game;
|
||||
|
||||
GameWrapper(this.game);
|
||||
|
||||
@override
|
||||
Widget build(_) {
|
||||
return Container(
|
||||
width: 400,
|
||||
height: 400,
|
||||
child: game.widget,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class MyGame extends BaseGame {
|
||||
MyGame(Size screenSize) {
|
||||
size = screenSize;
|
||||
|
||||
final spritesheet = SpriteSheet(
|
||||
imageName: 'spritesheet.png',
|
||||
textureWidth: 16,
|
||||
textureHeight: 18,
|
||||
columns: 11,
|
||||
rows: 2,
|
||||
);
|
||||
|
||||
MyGame(SpriteSheet spriteSheet) {
|
||||
final vampireAnimation =
|
||||
spritesheet.createAnimation(0, stepTime: 0.1, to: 7);
|
||||
final ghostAnimation = spritesheet.createAnimation(1, stepTime: 0.1, to: 7);
|
||||
spriteSheet.createAnimation(0, stepTime: 0.1, to: 7);
|
||||
final ghostAnimation = spriteSheet.createAnimation(1, stepTime: 0.1, to: 7);
|
||||
|
||||
final vampireComponent = AnimationComponent(80, 90, vampireAnimation);
|
||||
vampireComponent.x = 150;
|
||||
vampireComponent.y = 100;
|
||||
final vampireComponent = AnimationComponent(80, 90, vampireAnimation)
|
||||
..x = 150
|
||||
..y = 100;
|
||||
|
||||
final ghostComponent = AnimationComponent(80, 90, ghostAnimation);
|
||||
ghostComponent.x = 150;
|
||||
ghostComponent.y = 220;
|
||||
final ghostComponent = AnimationComponent(80, 90, ghostAnimation)
|
||||
..x = 150
|
||||
..y = 220;
|
||||
|
||||
add(vampireComponent);
|
||||
add(ghostComponent);
|
||||
|
||||
// Some plain sprites
|
||||
final vampireSpriteComponent =
|
||||
SpriteComponent.fromSprite(80, 90, spritesheet.getSprite(0, 0));
|
||||
vampireSpriteComponent.x = 50;
|
||||
vampireSpriteComponent.y = 100;
|
||||
SpriteComponent.fromSprite(80, 90, spriteSheet.getSprite(0, 0))
|
||||
..x = 50
|
||||
..y = 100;
|
||||
|
||||
final ghostSpriteComponent =
|
||||
SpriteComponent.fromSprite(80, 90, spritesheet.getSprite(1, 0));
|
||||
ghostSpriteComponent.x = 50;
|
||||
ghostSpriteComponent.y = 220;
|
||||
SpriteComponent.fromSprite(80, 90, spriteSheet.getSprite(1, 0))
|
||||
..x = 50
|
||||
..y = 220;
|
||||
|
||||
add(vampireSpriteComponent);
|
||||
add(ghostSpriteComponent);
|
||||
|
||||
Reference in New Issue
Block a user