import 'dart:ui'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_sprites/flutter_sprites.dart'; AssetBundle _initBundle() { if (rootBundle != null) return rootBundle; return new NetworkAssetBundle(Uri.base); } final AssetBundle _bundle = _initBundle(); ImageMap _images; SpriteSheet _spriteSheet; final ThemeData _theme = new ThemeData( brightness: ThemeBrightness.light, primarySwatch: Colors.purple ); main() async { _images = new ImageMap(_bundle); await _images.load(<String>[ 'assets/sprites.png' ]); String json = await _bundle.loadString('assets/sprites.json'); _spriteSheet = new SpriteSheet(_images['assets/sprites.png'], json); runApp(new MaterialApp( title: 'Test drawAtlas', theme: _theme, routes: <String, RouteBuilder>{ '/': (RouteArguments args) { return new SpriteWidget( new TestDrawAtlas(), SpriteBoxTransformMode.fixedWidth ); } } )); } class TestDrawAtlas extends NodeWithSize { TestDrawAtlas() : super(new Size(1024.0, 1024.0)); void paint(PaintingCanvas canvas) { List<RSTransform> transforms = <RSTransform>[ new RSTransform(1.0, 0.0, 100.0, 100.0) ]; List<Rect> rects = <Rect>[ _spriteSheet["ship.png"].frame ]; List<Color> colors = <Color>[ new Color(0xffffffff) ]; canvas.drawAtlas( _spriteSheet.image, transforms, rects, colors, TransferMode.src, null, new Paint() ..filterQuality = FilterQuality.low ..isAntiAlias = false ); } }