Skip to content

Commit 8f42250

Browse files
committed
Mesh GameObject base
1 parent 7477eb5 commit 8f42250

7 files changed

Lines changed: 112 additions & 1 deletion

File tree

v3/src/gameobjects/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ require('./zone/ZoneFactory');
1414
require('./effectlayer/EffectLayerFactory');
1515
require('./renderpass/RenderPassFactory');
1616
require('./tilesprite/TileSpriteFactory');
17+
require('./mesh/MeshFactory');
1718

1819
// Phaser.GameObjects
1920

@@ -33,6 +34,7 @@ module.exports = {
3334
Sprite: require('./sprite/Sprite'),
3435
Text: require('./text/static/Text'),
3536
Zone: require('./zone/Zone'),
36-
EffectLayer: require('./effectlayer/EffectLayer')
37+
EffectLayer: require('./effectlayer/EffectLayer'),
38+
Mesh: require('./mesh/Mesh')
3739

3840
};
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
var Mesh = require('./Mesh');
2+
var GetAdvancedValue = require('../../utils/object/GetAdvancedValue');
3+
var GetValue = require('../../utils/object/GetValue');
4+
var BuildGameObject = require('../BuildGameObject');
5+
6+
var BuildFromConfig = function (state, config)
7+
{
8+
var key = GetAdvancedValue(config, 'key', null);
9+
var frame = GetAdvancedValue(config, 'frame', null);
10+
var vertices = GetValue(config, 'vertices', []);
11+
var uv = GetValue(config, 'uv', []);
12+
13+
var mesh = new Mesh(state, 0, 0, vertices, uv, key, frame);
14+
15+
BuildGameObject(state, mesh, config);
16+
17+
return mesh;
18+
};
19+
20+
module.exports = BuildFromConfig;

v3/src/gameobjects/mesh/Mesh.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
2+
var Class = require('../../utils/Class');
3+
var GameObject = require('../GameObject');
4+
var Components = require('../../components');
5+
var MeshRender = require('./MeshRender');
6+
7+
var Mesh = new Class({
8+
9+
Extends: GameObject,
10+
11+
Mixins: [
12+
Components.Alpha,
13+
Components.BlendMode,
14+
Components.Flip,
15+
Components.GetBounds,
16+
Components.Origin,
17+
Components.RenderTarget,
18+
Components.ScaleMode,
19+
Components.Size,
20+
Components.Texture,
21+
Components.Transform,
22+
Components.Visible,
23+
MeshRender
24+
],
25+
26+
initialize:
27+
28+
function Mesh (state, x, y, vertices, uv, texture, frame)
29+
{
30+
GameObject.call(this, state, 'Mesh');
31+
32+
this.setTexture(texture, frame);
33+
this.setPosition(x, y);
34+
this.setSizeToFrame();
35+
this.setOrigin();
36+
37+
this.vertices = vertices;
38+
this.uv = uv;
39+
}
40+
41+
});
42+
43+
module.exports = Mesh;
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
var MeshCanvasRenderer = function (renderer, src, interpolationPercentage, camera)
2+
{
3+
if (this.renderMask !== this.renderFlags)
4+
{
5+
return;
6+
}
7+
};
8+
9+
module.exports = MeshCanvasRenderer
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
2+
var Mesh = require('./Mesh');
3+
var BuildFromConfig = require('./BuildFromConfig');
4+
var FactoryContainer = require('../../gameobjects/FactoryContainer');
5+
6+
var MeshFactory = {
7+
8+
KEY: 'mesh',
9+
10+
add: function (x, y, vertices, uv, key, frame)
11+
{
12+
return this.children.add(new Mesh(this.state, x, y, vertices, uv, key, frame));
13+
},
14+
15+
make: function (config)
16+
{
17+
return BuildFromConfig(this.state, config);
18+
}
19+
20+
};
21+
22+
module.exports = FactoryContainer.register(MeshFactory);
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('./MeshCanvasRenderer'),
4+
renderWebGL: require('./MeshWebGLRenderer')
5+
6+
};
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
var MeshWebGLRenderer = function (renderer, src, interpolationPercentage, camera)
2+
{
3+
if (this.renderMask !== this.renderFlags)
4+
{
5+
return;
6+
}
7+
};
8+
9+
module.exports = MeshWebGLRenderer

0 commit comments

Comments
 (0)