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

Unified Diff: sky/examples/game/lib/sprite.dart

Issue 1218593002: Move sky/examples to sky/sdk/lib/example, and code changes to support that change. Fixes T277. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: sky/examples/game/lib/sprite.dart
diff --git a/sky/examples/game/lib/sprite.dart b/sky/examples/game/lib/sprite.dart
deleted file mode 100644
index 6202e20e30b4abced89a1f19f36f9fe7311b3145..0000000000000000000000000000000000000000
--- a/sky/examples/game/lib/sprite.dart
+++ /dev/null
@@ -1,129 +0,0 @@
-part of sprites;
-
-/// A Sprite is a [Node] that renders a bitmap image to the screen.
-class Sprite extends NodeWithSize {
-
- /// The texture that the sprite will render to screen.
- ///
- /// If the texture is null, the sprite will be rendered as a red square
- /// marking the bounds of the sprite.
- ///
- /// mySprite.texture = myTexture;
- Texture texture;
-
- /// If true, constrains the proportions of the image by scaling it down, if its proportions doesn't match the [size].
- ///
- /// mySprite.constrainProportions = true;
- bool constrainProportions = false;
- double _opacity = 1.0;
-
- /// The color to draw on top of the sprite, null if no color overlay is used.
- ///
- /// // Color the sprite red
- /// mySprite.colorOverlay = new Color(0x77ff0000);
- Color colorOverlay;
-
- /// The transfer mode used when drawing the sprite to screen.
- ///
- /// // Add the colors of the sprite with the colors of the background
- /// mySprite.transferMode = TransferMode.plusMode;
- TransferMode transferMode;
-
- /// Creates a new sprite from the provided [texture].
- ///
- /// var mySprite = new Sprite(myTexture)
- Sprite([this.texture]) {
- if (texture != null) {
- size = texture.size;
- pivot = texture.pivot;
- } else {
- pivot = new Point(0.5, 0.5);
- }
- }
-
- /// Creates a new sprite from the provided [image].
- ///
- /// var mySprite = new Sprite.fromImage(myImage);
- Sprite.fromImage(Image image) {
- assert(image != null);
-
- texture = new Texture(image);
- size = texture.size;
-
- pivot = new Point(0.5, 0.5);
- }
-
- /// The opacity of the sprite in the range 0.0 to 1.0.
- ///
- /// mySprite.opacity = 0.5;
- double get opacity => _opacity;
-
- void set opacity(double opacity) {
- assert(opacity != null);
- assert(opacity >= 0.0 && opacity <= 1.0);
- _opacity = opacity;
- }
-
- void paint(RenderCanvas canvas) {
- canvas.save();
-
- // Account for pivot point
- applyTransformForPivot(canvas);
-
- if (texture != null) {
- double w = texture.size.width;
- double h = texture.size.height;
-
- if (w <= 0 || h <= 0) return;
-
- double scaleX = size.width / w;
- double scaleY = size.height / h;
-
- if (constrainProportions) {
- // Constrain proportions, using the smallest scale and by centering the image
- if (scaleX < scaleY) {
- canvas.translate(0.0, (size.height - scaleX * h) / 2.0);
- scaleY = scaleX;
- } else {
- canvas.translate((size.width - scaleY * w) / 2.0, 0.0);
- scaleX = scaleY;
- }
- }
-
- canvas.scale(scaleX, scaleY);
-
- // Setup paint object for opacity and transfer mode
- Paint paint = new Paint();
- paint.color = new Color.fromARGB((255.0*_opacity).toInt(), 255, 255, 255);
- if (colorOverlay != null) {
- paint.setColorFilter(new ColorFilter.mode(colorOverlay, TransferMode.srcATop));
- }
- if (transferMode != null) {
- paint.setTransferMode(transferMode);
- }
-
- // Do actual drawing of the sprite
- if (texture.rotated) {
- // Calculate the rotated frame and spriteSourceSize
- Size originalFrameSize = texture.frame.size;
- Rect rotatedFrame = new Rect.fromPointAndSize(texture.frame.upperLeft, new Size(originalFrameSize.height, originalFrameSize.width));
- Point rotatedSpriteSourcePoint = new Point(
- -texture.spriteSourceSize.top - (texture.spriteSourceSize.bottom - texture.spriteSourceSize.top),
- texture.spriteSourceSize.left);
- Rect rotatedSpriteSourceSize = new Rect.fromPointAndSize(rotatedSpriteSourcePoint, new Size(originalFrameSize.height, originalFrameSize.width));
-
- // Draw the rotated sprite
- canvas.rotate(-Math.PI/2.0);
- canvas.drawImageRect(texture.image, rotatedFrame, rotatedSpriteSourceSize, paint);
- } else {
- // Draw the sprite
- canvas.drawImageRect(texture.image, texture.frame, texture.spriteSourceSize, paint);
- }
- } else {
- // Paint a red square for missing texture
- canvas.drawRect(new Rect.fromLTRB(0.0, 0.0, size.width, size.height),
- new Paint()..color = const Color.fromARGB(255, 255, 0, 0));
- }
- canvas.restore();
- }
-}

Powered by Google App Engine
This is Rietveld 408576698