|
4 | 4 | * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} |
5 | 5 | */ |
6 | 6 |
|
| 7 | +var PropertyValueInc = require('./PropertyValueInc'); |
| 8 | + |
7 | 9 | /** |
8 | | - * [description] |
| 10 | + * Takes an array of Game Objects, or any objects that have public `scaleX` and `scaleY` properties, |
| 11 | + * and then adds the given value to each of them. |
| 12 | + * |
| 13 | + * The optional `stepX` and `stepY` properties are applied incrementally, multiplied by each item in the array. |
| 14 | + * |
| 15 | + * To use this with a Group: `ScaleXY(group.getChildren(), scaleX, scaleY, stepX, stepY)` |
9 | 16 | * |
10 | 17 | * @function Phaser.Actions.ScaleXY |
11 | 18 | * @since 3.0.0 |
12 | 19 | * |
13 | | - * @param {array} items - An array of Game Objects. The contents of this array are updated by this Action. |
14 | | - * @param {number} x - [description] |
15 | | - * @param {number} y - [description] |
| 20 | + * @param {array|Phaser.GameObjects.GameObject[]} items - The array of items to be updated by this action. |
| 21 | + * @param {number} scaleX - The amount to be added to the `scaleX` property. |
| 22 | + * @param {number} [scaleY] - The amount to be added to the `scaleY` property. If `undefined` or `null` it uses the `scaleX` value. |
| 23 | + * @param {number} [stepX=0] - This is added to the `scaleX` amount, multiplied by the iteration counter. |
| 24 | + * @param {number} [stepY=0] - This is added to the `y` amount, multiplied by the iteration counter. |
| 25 | + * @param {integer} [index=0] - An optional offset to start searching from within the items array. |
| 26 | + * @param {integer} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning. |
16 | 27 | * |
17 | | - * @return {array} The array of Game Objects that was passed to this Action. |
| 28 | + * @return {array} The array of objects that were passed to this Action. |
18 | 29 | */ |
19 | | -var ScaleXY = function (items, x, y) |
| 30 | +var ScaleXY = function (items, scaleX, scaleY, stepX, stepY, index, direction) |
20 | 31 | { |
21 | | - for (var i = 0; i < items.length; i++) |
22 | | - { |
23 | | - items[i].scaleX += x; |
24 | | - items[i].scaleY += y; |
25 | | - } |
| 32 | + if (scaleY === undefined || scaleY === null) { scaleY = scaleX; } |
| 33 | + |
| 34 | + PropertyValueInc(items, 'scaleX', scaleX, stepX, index, direction); |
26 | 35 |
|
27 | | - return items; |
| 36 | + return PropertyValueInc(items, 'scaleY', scaleY, stepY, index, direction); |
28 | 37 | }; |
29 | 38 |
|
30 | 39 | module.exports = ScaleXY; |
0 commit comments