diff --git a/packages/flutter/example/game/lib/game_demo_world.dart b/packages/flutter/example/game/lib/game_demo_world.dart index 82141aaca2..2ed3c4f3f8 100644 --- a/packages/flutter/example/game/lib/game_demo_world.dart +++ b/packages/flutter/example/game/lib/game_demo_world.dart @@ -51,7 +51,9 @@ class GameDemoWorld extends NodeWithSize { // Heads up display Hud _hud; - GameDemoWorld(App app, this._navigator, ImageMap images, this._spriteSheet, this._spriteSheetUI) : super(new Size(_gameSizeWidth, _gameSizeHeight)) { + Function _gameOverCallback; + + GameDemoWorld(App app, this._navigator, ImageMap images, this._spriteSheet, this._spriteSheetUI, this._gameOverCallback) : super(new Size(_gameSizeWidth, _gameSizeHeight)) { // Fetch images _imgNebula = images["assets/nebula.png"]; @@ -348,7 +350,7 @@ class GameDemoWorld extends NodeWithSize { // Set game over _isGameOver = true; - lastScore = _hud.score; + _gameOverCallback(_hud.score); // Remove the ship _ship.visible = false; diff --git a/packages/flutter/example/game/main.dart b/packages/flutter/example/game/main.dart index ac1504b655..e1b591b430 100644 --- a/packages/flutter/example/game/main.dart +++ b/packages/flutter/example/game/main.dart @@ -54,6 +54,7 @@ class GameDemoApp extends App { NavigationState _navigationState; GameDemoWorld _game; + int _lastScore = 0; void initState() { _navigationState = new NavigationState([ @@ -93,38 +94,37 @@ class GameDemoApp extends App { Widget _buildMainScene(navigator, route) { return new Stack([ new SpriteWidget(new MainScreenBackground()), - new Center( - child: new Flex([ - new TextureButton( - onPressed: () { - _game = new GameDemoWorld( - _app, - navigator, - _loader, - _spriteSheet, - _spriteSheetUI - ); - navigator.pushNamed('/game'); - }, - texture: _spriteSheetUI["btn_play_up.png"], - textureDown: _spriteSheetUI["btn_play_down.png"], - width: 128.0, - height: 128.0 - ), - new Text( - "Last Score: $lastScore", - style: new TextStyle(fontSize:20.0) - ) - ], - direction: FlexDirection.vertical, - justifyContent: FlexJustifyContent.center) - ) + new Flex([ + new TextureButton( + onPressed: () { + _game = new GameDemoWorld( + _app, + navigator, + _loader, + _spriteSheet, + _spriteSheetUI, + (lastScore) { + setState(() {_lastScore = lastScore;}); + } + ); + navigator.pushNamed('/game'); + }, + texture: _spriteSheetUI["btn_play_up.png"], + textureDown: _spriteSheetUI["btn_play_down.png"], + width: 128.0, + height: 128.0 + ), + new Text( + "Last Score: $_lastScore", + style: new TextStyle(fontSize:20.0) + ) + ], + direction: FlexDirection.vertical, + justifyContent: FlexJustifyContent.center) ]); } } -int lastScore = 0; - class TextureButton extends ButtonBase { TextureButton({ Key key,