mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Merge pull request #249 from vlidholt/master
Adds test case for drawAtlas in games
This commit is contained in:
commit
fb814cabf6
84
sky/sdk/example/game/test_drawatlas.dart
Normal file
84
sky/sdk/example/game/test_drawatlas.dart
Normal file
@ -0,0 +1,84 @@
|
||||
import 'lib/sprites.dart';
|
||||
|
||||
import 'dart:sky';
|
||||
|
||||
import 'package:sky/mojo/asset_bundle.dart';
|
||||
import 'package:sky/rendering/object.dart';
|
||||
import 'package:sky/theme/colors.dart' as colors;
|
||||
import 'package:sky/widgets/basic.dart';
|
||||
import 'package:sky/widgets/task_description.dart';
|
||||
import 'package:sky/widgets/theme.dart';
|
||||
|
||||
AssetBundle _initBundle() {
|
||||
if (rootBundle != null)
|
||||
return rootBundle;
|
||||
return new NetworkAssetBundle(Uri.base);
|
||||
}
|
||||
|
||||
final AssetBundle _bundle = _initBundle();
|
||||
|
||||
ImageMap _images;
|
||||
SpriteSheet _spriteSheet;
|
||||
TestDrawAtlasApp _app;
|
||||
|
||||
main() async {
|
||||
_images = new ImageMap(_bundle);
|
||||
|
||||
await _images.load([
|
||||
'assets/sprites.png'
|
||||
]);
|
||||
|
||||
String json = await _bundle.loadString('assets/sprites.json');
|
||||
_spriteSheet = new SpriteSheet(_images['assets/sprites.png'], json);
|
||||
|
||||
_app = new TestDrawAtlasApp();
|
||||
runApp(_app);
|
||||
}
|
||||
|
||||
class TestDrawAtlasApp extends App {
|
||||
|
||||
Widget build() {
|
||||
ThemeData theme = new ThemeData(
|
||||
brightness: ThemeBrightness.light,
|
||||
primarySwatch: colors.Purple
|
||||
);
|
||||
|
||||
return new Theme(
|
||||
data: theme,
|
||||
child: new TaskDescription(
|
||||
label: 'Test drawAtlas',
|
||||
child: 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 = [
|
||||
new RSTransform(1.0, 0.0, 100.0, 100.0)
|
||||
];
|
||||
List<Rect> rects = [
|
||||
_spriteSheet["ship.png"].frame
|
||||
];
|
||||
List<Color> colors = [
|
||||
new Color(0xffffffff)
|
||||
];
|
||||
|
||||
canvas.drawAtlas(
|
||||
_spriteSheet.image,
|
||||
transforms,
|
||||
rects,
|
||||
colors,
|
||||
TransferMode.src,
|
||||
null,
|
||||
new Paint()..setFilterQuality(FilterQuality.low)..isAntiAlias=false
|
||||
);
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user