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

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

Issue 1201983004: Adds API documentation for SkyGames (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
index c730056eb34b79fb98de5e204b6e87dea03444e0..a58168f18ee5977a8d771b62238251828a534ab0 100644
--- a/sky/examples/game/lib/sprite.dart
+++ b/sky/examples/game/lib/sprite.dart
@@ -1,24 +1,47 @@
part of sprites;
-// TODO: Actually draw images
-
+/// A Sprite is a [Node] that renders a bitmap image to the screen.
class Sprite extends NodeWithSize {
-
- Image _image;
+
+ /// The image that the sprite will render to screen.
+ ///
+ /// If the image is null, the sprite will be rendered as a red square
+ /// marking the bounds of the sprite.
+ ///
+ /// mySprite.image = myImage;
+ Image image;
+
+ /// 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;
-
- Sprite() {
- }
-
- Sprite.withImage(Image image) {
+
+ /// Creates a new sprite from the provided [image].
+ ///
+ /// var mySprite = new Sprite(myImage);
+ Sprite([Image this.image]) {
pivot = new Point(0.5, 0.5);
- size = new Size(image.width.toDouble(), image.height.toDouble());
- _image = image;
+ if (image != null) {
+ size = new Size(image.width.toDouble(), image.height.toDouble());
+ }
}
+ /// 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) {
@@ -33,19 +56,19 @@ class Sprite extends NodeWithSize {
// Account for pivot point
applyTransformForPivot(canvas);
- if (_image != null && _image.width > 0 && _image.height > 0) {
+ if (image != null && image.width > 0 && image.height > 0) {
- double scaleX = size.width/_image.width;
- double scaleY = size.height/_image.height;
+ double scaleX = size.width/image.width;
+ double scaleY = size.height/image.height;
if (constrainProportions) {
// Constrain proportions, using the smallest scale and by centering the image
if (scaleX < scaleY) {
- canvas.translate(0.0, (size.height - scaleX * _image.height)/2.0);
+ canvas.translate(0.0, (size.height - scaleX * image.height)/2.0);
scaleY = scaleX;
}
else {
- canvas.translate((size.width - scaleY * _image.width)/2.0, 0.0);
+ canvas.translate((size.width - scaleY * image.width)/2.0, 0.0);
scaleX = scaleY;
}
}
@@ -62,7 +85,7 @@ class Sprite extends NodeWithSize {
paint.setTransferMode(transferMode);
}
- canvas.drawImage(_image, 0.0, 0.0, paint);
+ canvas.drawImage(image, 0.0, 0.0, paint);
}
else {
// Paint a red square for missing texture

Powered by Google App Engine
This is Rietveld 408576698