Skip to content

Commit cb110e4

Browse files
committed
Actions.SetXY has 2 new arguments: index and direction.
1 parent c67882e commit cb110e4

1 file changed

Lines changed: 20 additions & 16 deletions

File tree

src/actions/SetXY.js

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,36 @@
44
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
55
*/
66

7+
var PropertyValueSet = require('./PropertyValueSet');
8+
79
/**
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)`
916
*
1017
* @function Phaser.Actions.SetXY
1118
* @since 3.0.0
1219
*
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.
1827
*
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.
2029
*/
21-
var SetXY = function (items, x, y, stepX, stepY)
30+
var SetXY = function (items, x, y, stepX, stepY, index, direction)
2231
{
23-
if (stepX === undefined) { stepX = 0; }
24-
if (stepY === undefined) { stepY = 0; }
32+
if (y === undefined || y === null) { y = x; }
2533

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);
3135

32-
return items;
36+
return PropertyValueSet(items, 'y', y, stepY, index, direction);
3337
};
3438

3539
module.exports = SetXY;

0 commit comments

Comments
 (0)