Skip to content

Commit 1cddea4

Browse files
committed
Added and fixed-up the Container game object.
1 parent 8262b4e commit 1cddea4

8 files changed

Lines changed: 51 additions & 52 deletions

File tree

v3/src/checksum.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
var CHECKSUM = {
2-
build: '675700d0-fa33-11e6-b99d-a10bc0cf71c4'
2+
build: '4d6475f0-fa3c-11e6-ae9b-c374376ab063'
33
};
44
module.exports = CHECKSUM;
Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,25 @@
1-
/**
2-
* @author Richard Davey <rich@photonstorm.com>
3-
* @copyright 2016 Photon Storm Ltd.
4-
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
5-
*/
61

7-
var CONST = require('../../const');
2+
var Class = require('../../utils/Class');
83
var GameObject = require('../GameObject');
9-
var ContainerWebGLRenderer = require('./ContainerWebGLRenderer');
10-
var Children = require('../../components/Children');
4+
var Components = require('../../components');
5+
var ContainerRender = require('./ContainerRender');
116

12-
var Container = function (state, parent, x, y)
13-
{
14-
GameObject.call(this, state, x, y, null, null, parent);
7+
var Container = new Class({
158

16-
this.type = CONST.CONTAINER;
9+
Mixins: [
10+
Components.Visible,
11+
ContainerRender
12+
],
1713

18-
this.render = ContainerWebGLRenderer;
14+
initialize:
1915

20-
this.children = new Children(this);
21-
};
16+
function Container (state)
17+
{
18+
GameObject.call(this, state);
2219

23-
Container.prototype = Object.create(GameObject.prototype);
24-
Container.prototype.constructor = Container;
20+
this.children = new Components.Children(this);
21+
}
2522

26-
Container.prototype.preUpdate = function ()
27-
{
28-
this.children.preUpdate();
29-
};
23+
});
3024

3125
module.exports = Container;
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
2+
var ContainerCanvasRenderer = function (renderer, src, interpolationPercentage, camera)
3+
{
4+
if (this.renderMask !== this.renderFlags)
5+
{
6+
return;
7+
}
8+
9+
// Render children
10+
for (var i = 0; i < src.children.list.length; i++)
11+
{
12+
var child = src.children.list[i];
13+
14+
child.renderCanvas(renderer, child, interpolationPercentage, camera);
15+
}
16+
};
17+
18+
module.exports = ContainerCanvasRenderer;

v3/src/gameobjects/container/ContainerFactory.js

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
/**
2-
* @author Richard Davey <rich@photonstorm.com>
3-
* @copyright 2016 Photon Storm Ltd.
4-
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
5-
*/
61

72
var Container = require('./Container');
83
var FactoryContainer = require('../../gameobjects/FactoryContainer');
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module.exports = {
2+
3+
renderCanvas: require('./ContainerCanvasRenderer'),
4+
renderWebGL: require('./ContainerWebGLRenderer')
5+
6+
};

v3/src/gameobjects/container/ContainerWebGLRenderer.js

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11

2-
var ContainerWebGLRenderer = function (renderer, src, interpolationPercentage)
2+
var ContainerWebGLRenderer = function (renderer, src, interpolationPercentage, camera)
33
{
4-
var alpha = src.color.worldAlpha * 255 << 24;
5-
6-
// Skip rendering?
7-
8-
if (src.skipRender || !src.visible || alpha === 0 || src.children.list.length === 0)
4+
if (this.renderMask !== this.renderFlags)
95
{
106
return;
117
}
@@ -15,7 +11,7 @@ var ContainerWebGLRenderer = function (renderer, src, interpolationPercentage)
1511
{
1612
var child = src.children.list[i];
1713

18-
child.render(renderer, child);
14+
child.renderWebGL(renderer, child, interpolationPercentage, camera);
1915
}
2016
};
2117

v3/src/gameobjects/image/ImageFactory.js

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
/**
2-
* @author Richard Davey <rich@photonstorm.com>
3-
* @copyright 2016 Photon Storm Ltd.
4-
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
5-
*/
61

72
var Image = require('./Image');
83
var FactoryContainer = require('../../gameobjects/FactoryContainer');
@@ -27,20 +22,15 @@ var ImageFactory = {
2722
* @param {Phaser.Group} [group] - Optional Group to add the object to. If not specified it will be added to the World group.
2823
* @return {Phaser.Image} The newly created Image object.
2924
*/
30-
add: function (x, y, key, frame, group)
25+
add: function (x, y, key, frame, parent)
3126
{
32-
if (group === undefined) { group = this.state; }
27+
if (parent === undefined) { parent = this.state; }
3328

34-
// console.log('ImageFactory.add', key);
35-
// console.log('into State', this.state.sys.settings.key);
36-
37-
return group.children.add(new Image(this.state, x, y, key, frame));
29+
return parent.children.add(new Image(this.state, x, y, key, frame));
3830
},
3931

4032
make: function (x, y, key, frame)
4133
{
42-
// console.log('ImageFactory.make', key, x, y, frame);
43-
4434
return new Image(this.state, x, y, key, frame);
4535
}
4636

v3/src/gameobjects/index.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
// Required, but don't need Phaser level exports
22
// (maybe these should be Phaser export level?)
33

4+
require('./blitter/BlitterFactory');
5+
require('./container/ContainerFactory');
46
require('./image/ImageFactory');
57
require('./sprite/SpriteFactory');
6-
require('./blitter/BlitterFactory');
78
require('./text/BitmapTextFactory');
89

9-
// require('./gameobjects/container/ContainerFactory');
10-
1110
// Phaser.GameObjects
1211

1312
module.exports = {
1413

1514
Factory: require('./FactoryContainer'),
1615

16+
Blitter: require('./blitter/Blitter'),
17+
Container: require('./container/Container'),
1718
Image: require('./image/Image'),
18-
Sprite: require('./sprite/Sprite'),
19-
Blitter: require('./blitter/Blitter')
19+
Sprite: require('./sprite/Sprite')
2020

2121
};

0 commit comments

Comments
 (0)