From 430c08f3e6118eec5cfe95cf28821c401d539c33 Mon Sep 17 00:00:00 2001 From: Viktor Lidholt Date: Wed, 29 Jul 2015 13:10:02 -0700 Subject: [PATCH] Adds display of last score to demo game --- .../flutter/example/game/lib/game_demo.dart | 2 + .../example/game/lib/game_demo_world.dart | 1 + packages/flutter/example/game/main.dart | 45 ++++++++++++------- 3 files changed, 32 insertions(+), 16 deletions(-) diff --git a/packages/flutter/example/game/lib/game_demo.dart b/packages/flutter/example/game/lib/game_demo.dart index c660bf581f6..9be2f3e8901 100644 --- a/packages/flutter/example/game/lib/game_demo.dart +++ b/packages/flutter/example/game/lib/game_demo.dart @@ -9,4 +9,6 @@ import 'package:sky/widgets/widget.dart'; import 'package:sky/widgets/navigator.dart'; import 'package:vector_math/vector_math_64.dart'; +import '../main.dart'; + part 'game_demo_world.dart'; diff --git a/packages/flutter/example/game/lib/game_demo_world.dart b/packages/flutter/example/game/lib/game_demo_world.dart index 6ee0c018d21..82141aaca28 100644 --- a/packages/flutter/example/game/lib/game_demo_world.dart +++ b/packages/flutter/example/game/lib/game_demo_world.dart @@ -348,6 +348,7 @@ class GameDemoWorld extends NodeWithSize { // Set game over _isGameOver = true; + lastScore = _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 e0495dab80d..ac1504b6555 100644 --- a/packages/flutter/example/game/main.dart +++ b/packages/flutter/example/game/main.dart @@ -5,6 +5,7 @@ import 'package:sky/mojo/asset_bundle.dart'; import 'package:sky/theme/colors.dart' as colors; import 'package:sky/rendering/object.dart'; +import 'package:sky/painting/text_style.dart'; import 'package:sky/widgets/basic.dart'; import 'package:sky/widgets/button_base.dart'; import 'package:sky/widgets/navigator.dart'; @@ -93,27 +94,37 @@ class GameDemoApp extends App { return new Stack([ new SpriteWidget(new MainScreenBackground()), new Center( - child: 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 - ) + 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) ) ]); } } +int lastScore = 0; + class TextureButton extends ButtonBase { TextureButton({ Key key, @@ -156,6 +167,7 @@ class TextureButton extends ButtonBase { if (texture == null) return; + canvas.save(); if (highlight && textureDown != null) { // Draw down state canvas.scale(size.width / textureDown.size.width, size.height / textureDown.size.height); @@ -165,6 +177,7 @@ class TextureButton extends ButtonBase { canvas.scale(size.width / texture.size.width, size.height / texture.size.height); texture.drawTexture(canvas, Point.origin, new Paint()); } + canvas.restore(); } }