|
4 | 4 | * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} |
5 | 5 | */ |
6 | 6 |
|
| 7 | +var PropertyValueSet = require('./PropertyValueSet'); |
| 8 | + |
7 | 9 | /** |
8 | | - * [description] |
| 10 | + * Takes an array of Game Objects, or any objects that have the public properties `x` and `y` |
| 11 | + * and then sets them to the given values. |
| 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: `SetXY(group.getChildren(), x, y, stepX, stepY)` |
9 | 16 | * |
10 | 17 | * @function Phaser.Actions.SetXY |
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] |
16 | | - * @param {number} [stepX=0] - [description] |
17 | | - * @param {number} [stepY=0] - [description] |
| 20 | + * @param {array|Phaser.GameObjects.GameObject[]} items - The array of items to be updated by this action. |
| 21 | + * @param {number} x - The amount to set the `x` property to. |
| 22 | + * @param {number} [y] - The amount to set the `y` property to. If `undefined` or `null` it uses the `x` value. |
| 23 | + * @param {number} [stepX=0] - This is added to the `x` 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. |
18 | 27 | * |
19 | | - * @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. |
20 | 29 | */ |
21 | | -var SetXY = function (items, x, y, stepX, stepY) |
| 30 | +var SetXY = function (items, x, y, stepX, stepY, index, direction) |
22 | 31 | { |
23 | | - if (stepX === undefined) { stepX = 0; } |
24 | | - if (stepY === undefined) { stepY = 0; } |
| 32 | + if (y === undefined || y === null) { y = x; } |
25 | 33 |
|
26 | | - for (var i = 0; i < items.length; i++) |
27 | | - { |
28 | | - items[i].x = x + (i * stepX); |
29 | | - items[i].y = y + (i * stepY); |
30 | | - } |
| 34 | + PropertyValueSet(items, 'x', x, stepX, index, direction); |
31 | 35 |
|
32 | | - return items; |
| 36 | + return PropertyValueSet(items, 'y', y, stepY, index, direction); |
33 | 37 | }; |
34 | 38 |
|
35 | 39 | module.exports = SetXY; |
0 commit comments