Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(290)

Side by Side Diff: sky/sdk/example/game/main.dart

Issue 1227373004: Make Sky example game run offline (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698