mirror of
https://github.com/scratchfoundation/scratch-vm.git
synced 2025-06-28 15:20:28 -04:00
Add documentation in src/sprites/clone.js
This commit is contained in:
parent
460760bd06
commit
798368b6c5
1 changed files with 56 additions and 1 deletions
|
@ -9,6 +9,9 @@ function Clone(spriteBlocks) {
|
|||
}
|
||||
util.inherits(Clone, Target);
|
||||
|
||||
/**
|
||||
* Create a clone's drawable with the renderer.
|
||||
*/
|
||||
Clone.prototype.initDrawable = function () {
|
||||
var createPromise = self.renderer.createDrawable();
|
||||
var instance = this;
|
||||
|
@ -17,17 +20,41 @@ Clone.prototype.initDrawable = function () {
|
|||
});
|
||||
};
|
||||
|
||||
// Clone-level properties
|
||||
// Clone-level properties.
|
||||
/**
|
||||
* Scratch X coordinate. Currently should range from -240 to 240.
|
||||
* @type {!number}
|
||||
*/
|
||||
Clone.prototype.x = 0;
|
||||
|
||||
/**
|
||||
* Scratch Y coordinate. Currently should range from -180 to 180.
|
||||
* @type {!number}
|
||||
*/
|
||||
Clone.prototype.y = 0;
|
||||
|
||||
/**
|
||||
* Scratch direction. Currently should range from -179 to 180.
|
||||
* @type {!number}
|
||||
*/
|
||||
Clone.prototype.direction = 90;
|
||||
|
||||
/**
|
||||
* Whether the clone is currently visible.
|
||||
* @type {!boolean}
|
||||
*/
|
||||
Clone.prototype.visible = true;
|
||||
|
||||
/**
|
||||
* Size of clone as a percent of costume size. Ranges from 5% to 535%.
|
||||
* @type {!number}
|
||||
*/
|
||||
Clone.prototype.size = 100;
|
||||
|
||||
/**
|
||||
* Map of current graphic effect values.
|
||||
* @type {!Object.<string, number>}
|
||||
*/
|
||||
Clone.prototype.effects = {
|
||||
'color': 0,
|
||||
'fisheye': 0,
|
||||
|
@ -37,7 +64,13 @@ Clone.prototype.effects = {
|
|||
'brightness': 0,
|
||||
'ghost': 0
|
||||
};
|
||||
// End clone-level properties.
|
||||
|
||||
/**
|
||||
* Set the X and Y coordinates of a clone.
|
||||
* @param {!number} x New X coordinate of clone, in Scratch coordinates.
|
||||
* @param {!number} y New Y coordinate of clone, in Scratch coordinates.
|
||||
*/
|
||||
Clone.prototype.setXY = function (x, y) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
|
@ -46,7 +79,12 @@ Clone.prototype.setXY = function (x, y) {
|
|||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Set the direction of a clone.
|
||||
* @param {!number} direction New direction of clone.
|
||||
*/
|
||||
Clone.prototype.setDirection = function (direction) {
|
||||
// Keep direction between -179 and +180.
|
||||
this.direction = MathUtil.wrapClamp(direction, -179, 180);
|
||||
self.renderer.updateDrawableProperties(this.drawableID, {
|
||||
direction: this.direction
|
||||
|
@ -67,6 +105,10 @@ Clone.prototype.setSay = function (type, message) {
|
|||
console.log('Setting say bubble:', type, message);
|
||||
};
|
||||
|
||||
/**
|
||||
* Set visibility of the clone; i.e., whether it's shown or hidden.
|
||||
* @param {!boolean} visible True if the sprite should be shown.
|
||||
*/
|
||||
Clone.prototype.setVisible = function (visible) {
|
||||
this.visible = visible;
|
||||
// @todo: Until visibility is implemented in the renderer, use a ghost.
|
||||
|
@ -77,13 +119,23 @@ Clone.prototype.setVisible = function (visible) {
|
|||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Set size of the clone, as a percentage of the costume size.
|
||||
* @param {!number} size Size of clone, from 5 to 535.
|
||||
*/
|
||||
Clone.prototype.setSize = function (size) {
|
||||
// Keep size between 5% and 535%.
|
||||
this.size = MathUtil.clamp(size, 5, 535);
|
||||
self.renderer.updateDrawableProperties(this.drawableID, {
|
||||
scale: this.size
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Set a particular graphic effect on this clone.
|
||||
* @param {!string} effectName Name of effect (see `Clone.prototype.effects`).
|
||||
* @param {!number} value Numerical magnitude of effect.
|
||||
*/
|
||||
Clone.prototype.setEffect = function (effectName, value) {
|
||||
this.effects[effectName] = value;
|
||||
var props = {};
|
||||
|
@ -91,6 +143,9 @@ Clone.prototype.setEffect = function (effectName, value) {
|
|||
self.renderer.updateDrawableProperties(this.drawableID, props);
|
||||
};
|
||||
|
||||
/**
|
||||
* Clear all graphic effects on this clone.
|
||||
*/
|
||||
Clone.prototype.clearEffects = function () {
|
||||
for (var effectName in this.effects) {
|
||||
this.effects[effectName] = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue