| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 import 'package:sky/mojo/asset_bundle.dart'; |
| 1 import 'package:sky/widgets/basic.dart'; | 6 import 'package:sky/widgets/basic.dart'; |
| 2 import 'package:sky/widgets/widget.dart'; | 7 import 'package:sky/widgets/widget.dart'; |
| 3 import 'package:sky/mojo/net/fetch.dart'; | |
| 4 | 8 |
| 5 import 'lib/game_demo.dart'; | 9 import 'lib/game_demo.dart'; |
| 6 import 'lib/sprites.dart'; | 10 import 'lib/sprites.dart'; |
| 7 | 11 |
| 8 void main() { | 12 AssetBundle _initBundle() { |
| 9 // Load images | 13 if (rootBundle != null) |
| 10 new ImageMap([ | 14 return rootBundle; |
| 11 "res/nebula.png", | 15 return new NetworkAssetBundle(Uri.base); |
| 12 "res/sprites.png", | |
| 13 "res/starfield.png", | |
| 14 ], | |
| 15 allImagesLoaded); | |
| 16 } | 16 } |
| 17 | 17 |
| 18 void allImagesLoaded(ImageMap loader) { | 18 final AssetBundle _bundle = _initBundle(); |
| 19 _loader = loader; | |
| 20 | 19 |
| 21 fetchBody("res/sprites.json").then((Response response) { | 20 ImageMap _loader; |
| 22 String json = response.bodyAsString(); | 21 SpriteSheet _spriteSheet; |
| 23 _spriteSheet = new SpriteSheet(_loader["res/sprites.png"], json); | |
| 24 allResourcesLoaded(); | |
| 25 }); | |
| 26 } | |
| 27 | |
| 28 GameDemoApp _app; | 22 GameDemoApp _app; |
| 29 | 23 |
| 30 void allResourcesLoaded() { | 24 main() async { |
| 25 _loader = new ImageMap(_bundle); |
| 26 |
| 27 await _loader.load([ |
| 28 'assets/nebula.png', |
| 29 'assets/sprites.png', |
| 30 'assets/starfield.png', |
| 31 ]); |
| 32 |
| 33 String json = await _bundle.loadString('assets/sprites.json'); |
| 34 _spriteSheet = new SpriteSheet(_loader['assets/sprites.png'], json); |
| 31 _app = new GameDemoApp(); | 35 _app = new GameDemoApp(); |
| 36 |
| 32 runApp(_app); | 37 runApp(_app); |
| 33 } | 38 } |
| 34 | 39 |
| 35 class GameDemoApp extends App { | 40 class GameDemoApp extends App { |
| 36 | 41 |
| 37 Widget build() { | 42 Widget build() { |
| 38 return new Stack([ | 43 return new Stack([ |
| 39 new SpriteWidget(new GameDemoWorld(_app, _loader, _spriteSheet)), | 44 new SpriteWidget(new GameDemoWorld(_app, _loader, _spriteSheet)), |
| 40 // new StackPositionedChild( | 45 // new StackPositionedChild( |
| 41 // new Flex([ | 46 // new Flex([ |
| 42 // new FlexExpandingChild( | 47 // new FlexExpandingChild( |
| 43 // new RaisedButton(child:new Text("Hello")), | 48 // new RaisedButton(child:new Text("Hello")), |
| 44 // key: 1 | 49 // key: 1 |
| 45 // ), | 50 // ), |
| 46 // new FlexExpandingChild( | 51 // new FlexExpandingChild( |
| 47 // new RaisedButton(child:new Text("Foo!")), | 52 // new RaisedButton(child:new Text("Foo!")), |
| 48 // key: 2 | 53 // key: 2 |
| 49 // ) | 54 // ) |
| 50 // ]), | 55 // ]), |
| 51 // right:0.0, | 56 // right:0.0, |
| 52 // top: 20.0 | 57 // top: 20.0 |
| 53 // ) | 58 // ) |
| 54 ]); | 59 ]); |
| 55 } | 60 } |
| 56 } | 61 } |
| 57 | 62 |
| 58 void resetGame() { | 63 void resetGame() { |
| 59 _app.scheduleBuild(); | 64 _app.scheduleBuild(); |
| 60 } | 65 } |
| 61 | |
| 62 ImageMap _loader; | |
| 63 SpriteSheet _spriteSheet; | |
| OLD | NEW |