Skip to content

Commit 582d705

Browse files
committed
Updated base game objects.
1 parent 60d348c commit 582d705

6 files changed

Lines changed: 99 additions & 101 deletions

File tree

src/gameobjects/image/Image.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,24 @@
1919
*/
2020
Phaser.GameObject.Image = function (game, x, y, key, frame)
2121
{
22-
Phaser.Component.BaseTransform.call(this, x, y);
23-
2422
this.game = game;
2523

24+
Phaser.Component.BaseTransform.call(this, x, y);
25+
2626
/**
2727
* @property {number} type - The const type of this object.
2828
* @readonly
2929
*/
3030
this.type = Phaser.IMAGE;
3131

32+
this.name = '';
33+
3234
this.parent = null;
3335

3436
this.texture = game.textures.get(key);
3537

3638
this.frame = this.texture.get(frame);
3739

38-
this.children = new Phaser.Component.Children(this);
39-
4040
// Allows you to turn off a GO from rendering, but still render its children
4141
this.skipRender = (key === undefined);
4242

@@ -62,8 +62,7 @@ Phaser.GameObject.Image.prototype.constructor = Phaser.GameObject.Image;
6262
*/
6363
Phaser.GameObject.Image.prototype.preUpdate = function ()
6464
{
65-
this.transform.update();
66-
// this.children.update();
65+
// this.transform.update();
6766
};
6867

6968
Phaser.GameObject.Image.prototype.update = function ()

src/gameobjects/image/ImageCanvasRenderer.js

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,6 @@ Phaser.Renderer.Canvas.GameObjects.Image = {
7373

7474
renderer.context.drawImage(source.image, frame.cutX, frame.cutY, cw, ch, dx, dy, cw / resolution, ch / resolution);
7575

76-
// TEMP TEST!
77-
for (var i = 0; i < src.children.list.length; i++)
78-
{
79-
var child = src.children.list[i];
80-
81-
child.render(renderer, child);
82-
}
83-
8476
/*
8577
// Move this to either the Renderer, or the Texture Manager, but not here (as it's repeated all over the place)
8678
if (src.texture.rotated)

src/gameobjects/image/ImageFactory.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ Phaser.GameObject.Image.FACTORY_KEY = 'image';
88

99
/**
1010
* Create a new `Image` object.
11-
*
11+
*
1212
* An Image is a light-weight object you can use to display anything that doesn't need physics or animation.
13-
*
14-
* It can still rotate, scale, crop and receive input events.
13+
*
14+
* It can still rotate, scale, crop and receive input events.
1515
* This makes it perfect for logos, backgrounds, simple buttons and other non-Sprite graphics.
1616
*
1717
* @method Phaser.GameObject.Factory#image

src/gameobjects/sprite/Sprite.js

Lines changed: 72 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -13,28 +13,7 @@
1313
*
1414
* @class Phaser.GameObject.Sprite
1515
* @constructor
16-
* @extends PIXI.Sprite
17-
* @extends Phaser.Component.Core
18-
* @extends Phaser.Component.Angle
19-
* @extends Phaser.Component.Animation
20-
* @extends Phaser.Component.AutoCull
21-
* @extends Phaser.Component.Bounds
22-
* @extends Phaser.Component.BringToTop
23-
* @extends Phaser.Component.Crop
24-
* @extends Phaser.Component.Delta
25-
* @extends Phaser.Component.Destroy
26-
* @extends Phaser.Component.FixedToCamera
27-
* @extends Phaser.Component.Health
28-
* @extends Phaser.Component.InCamera
29-
* @extends Phaser.Component.InputEnabled
30-
* @extends Phaser.Component.InWorld
31-
* @extends Phaser.Component.LifeSpan
32-
* @extends Phaser.Component.LoadTexture
33-
* @extends Phaser.Component.Overlap
34-
* @extends Phaser.Component.PhysicsBody
35-
* @extends Phaser.Component.Reset
36-
* @extends Phaser.Component.ScaleMinMax
37-
* @extends Phaser.Component.Smoothed
16+
* @extends Phaser.Components.BaseTransform
3817
* @param {Phaser.Game} game - A reference to the currently running game.
3918
* @param {number} x - The x coordinate (in world space) to position the Sprite at.
4019
* @param {number} y - The y coordinate (in world space) to position the Sprite at.
@@ -43,8 +22,9 @@
4322
*/
4423
Phaser.GameObject.Sprite = function (game, x, y, key, frame)
4524
{
46-
x = x || 0;
47-
y = y || 0;
25+
this.game = game;
26+
27+
Phaser.Component.BaseTransform.call(this, x, y);
4828

4929
/**
5030
* @property {number} type - The const type of this object.
@@ -58,56 +38,84 @@ Phaser.GameObject.Sprite = function (game, x, y, key, frame)
5838
*/
5939
this.physicsType = Phaser.SPRITE;
6040

61-
PIXI.Sprite.call(this, Phaser.Cache.DEFAULT);
41+
this.name = '';
42+
43+
this.parent = null;
44+
45+
this.texture = game.textures.get(key);
46+
47+
this.frame = this.texture.get(frame);
48+
49+
this.children = new Phaser.Component.Children(this);
50+
51+
// Allows you to turn off a GO from rendering, but still render its children
52+
this.skipRender = (key === undefined);
53+
54+
this.visible = true;
6255

63-
Phaser.Component.Core.init.call(this, game, x, y, key, frame);
56+
this.data = new Phaser.Component.Data(this);
6457

58+
// Temporary for now?
59+
this.alpha = 1;
60+
this.blendMode = Phaser.blendModes.NORMAL;
61+
this.scaleMode = Phaser.scaleModes.DEFAULT;
62+
this.exists = true;
6563
};
6664

67-
Phaser.GameObject.Sprite.prototype = Object.create(PIXI.Sprite.prototype);
65+
Phaser.GameObject.Sprite.prototype = Object.create(Phaser.Component.BaseTransform.prototype);
6866
Phaser.GameObject.Sprite.prototype.constructor = Phaser.GameObject.Sprite;
6967

70-
Phaser.Component.Core.install.call(Phaser.GameObject.Sprite.prototype, [
71-
'Angle',
72-
'Animation',
73-
'AutoCull',
74-
'Bounds',
75-
'BringToTop',
76-
'Crop',
77-
'Delta',
78-
'Destroy',
79-
'FixedToCamera',
80-
'Health',
81-
'InCamera',
82-
'InputEnabled',
83-
'InWorld',
84-
'LifeSpan',
85-
'Overlap',
86-
'PhysicsBody',
87-
'Reset',
88-
'ScaleMinMax',
89-
'Smoothed'
90-
]);
91-
92-
Phaser.GameObject.Sprite.prototype.preUpdatePhysics = Phaser.Component.PhysicsBody.preUpdate;
93-
Phaser.GameObject.Sprite.prototype.preUpdateLifeSpan = Phaser.Component.LifeSpan.preUpdate;
94-
Phaser.GameObject.Sprite.prototype.preUpdateInWorld = Phaser.Component.InWorld.preUpdate;
95-
Phaser.GameObject.Sprite.prototype.preUpdateCore = Phaser.Component.Core.preUpdate;
96-
9768
/**
9869
* Automatically called by World.preUpdate.
9970
*
100-
* @method
101-
* @memberof Phaser.GameObject.Sprite
102-
* @return {boolean} True if the Sprite was rendered, otherwise false.
71+
* @method Phaser.Sprite#preUpdate
72+
* @memberof Phaser.Sprite
10373
*/
104-
Phaser.GameObject.Sprite.prototype.preUpdate = function () {
105-
106-
if (!this.preUpdatePhysics() || !this.preUpdateLifeSpan() || !this.preUpdateInWorld())
107-
{
108-
return false;
109-
}
74+
Phaser.GameObject.Sprite.prototype.preUpdate = function ()
75+
{
76+
// this.transform.update();
77+
};
11078

111-
return this.preUpdateCore();
79+
Phaser.GameObject.Sprite.prototype.update = function ()
80+
{
81+
};
11282

83+
Phaser.GameObject.Sprite.prototype.postUpdate = function ()
84+
{
11385
};
86+
87+
Object.defineProperties(Phaser.GameObject.Sprite.prototype, {
88+
89+
width: {
90+
91+
enumerable: true,
92+
93+
get: function ()
94+
{
95+
return this.transform._scaleX * this.frame.realWidth;
96+
},
97+
98+
set: function (value)
99+
{
100+
this.scaleX = value / this.frame.realWidth;
101+
}
102+
103+
},
104+
105+
height: {
106+
107+
enumerable: true,
108+
109+
get: function ()
110+
{
111+
return this.transform._scaleY * this.frame.realHeight;
112+
},
113+
114+
set: function (value)
115+
{
116+
this.scaleY = value / this.frame.realHeight;
117+
}
118+
119+
}
120+
121+
});

src/gameobjects/sprite/SpriteCanvasRenderer.js

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
Phaser.Renderer.Canvas.GameObjects.Sprite = {
99

1010
TYPES: [
11-
Phaser.GameObject.Sprite.prototype,
12-
PIXI.Sprite.prototype
11+
Phaser.GameObject.Sprite.prototype
1312
],
1413

1514
render: function (renderer, src)
@@ -19,7 +18,7 @@ Phaser.Renderer.Canvas.GameObjects.Sprite = {
1918

2019
// Skip render?
2120

22-
if (!src.visible || !src.alpha || !src.renderable || !frame.cutWidth || !frame.cutHeight)
21+
if (src.skipRender || !src.visible || !src.alpha || !frame.cutWidth || !frame.cutHeight)
2322
{
2423
return;
2524
}
@@ -32,27 +31,27 @@ Phaser.Renderer.Canvas.GameObjects.Sprite = {
3231
renderer.context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode];
3332
}
3433

35-
// Alpha
34+
// Alpha (World Alpha?)
3635

37-
if (src.worldAlpha !== renderer.context.globalAlpha)
36+
if (src.alpha !== renderer.context.globalAlpha)
3837
{
39-
renderer.context.globalAlpha = src.worldAlpha;
38+
renderer.context.globalAlpha = src.alpha;
4039
}
4140

42-
// Smoothing (should this be a Game Object, or Frame/Texture level property?)
41+
// Smoothing (should this be a Game Object, or Frame / Texture level property?)
4342

4443
if (source.scaleMode !== renderer.currentScaleMode)
4544
{
4645
renderer.currentScaleMode = source.scaleMode;
4746
renderer.context[renderer.smoothProperty] = (source.scaleMode === Phaser.scaleModes.LINEAR);
4847
}
4948

50-
var wt = src.worldTransform;
49+
var wt = src.transform.world;
5150

5251
var resolution = source.resolution / renderer.game.resolution;
5352

54-
var dx = frame.x - (src.anchor.x * frame.width);
55-
var dy = frame.y - (src.anchor.y * frame.height);
53+
var dx = frame.x - (src.anchorX * frame.width);
54+
var dy = frame.y - (src.anchorY * frame.height);
5655

5756
var tx = (wt.tx * renderer.game.resolution) + renderer.game.camera._shake.x;
5857
var ty = (wt.ty * renderer.game.resolution) + renderer.game.camera._shake.y;
@@ -70,17 +69,24 @@ Phaser.Renderer.Canvas.GameObjects.Sprite = {
7069
var cw = frame.cutWidth;
7170
var ch = frame.cutHeight;
7271

72+
renderer.context.setTransform(wt.a, wt.b, wt.c, wt.d, tx, ty);
73+
7374
// Does this Sprite have a mask?
7475

7576
if (src._mask)
7677
{
7778
renderer.pushMask(src._mask);
7879
}
7980

80-
renderer.context.setTransform(wt.a, wt.b, wt.c, wt.d, tx, ty);
81-
8281
renderer.context.drawImage(source.image, frame.cutX, frame.cutY, cw, ch, dx, dy, cw / resolution, ch / resolution);
8382

83+
for (var i = 0; i < src.children.list.length; i++)
84+
{
85+
var child = src.children.list[i];
86+
87+
child.render(renderer, child);
88+
}
89+
8490
/*
8591
// Move this to either the Renderer, or the Texture Manager, but not here (as it's repeated all over the place)
8692
if (src.texture.rotated)
@@ -121,13 +127,6 @@ Phaser.Renderer.Canvas.GameObjects.Sprite = {
121127
}
122128
*/
123129

124-
for (var i = 0; i < src.children.length; i++)
125-
{
126-
var child = src.children[i];
127-
128-
child.render(child);
129-
}
130-
131130
if (src._mask)
132131
{
133132
renderer.popMask();

src/gameobjects/sprite/SpriteFactory.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Phaser.GameObject.Sprite.FACTORY_ADD = function (x, y, key, frame, group)
2525
{
2626
if (group === undefined) { group = this.world; }
2727

28-
return group.create(x, y, key, frame);
28+
return group.children.add(new Phaser.GameObject.Sprite(this.game, x, y, key, frame));
2929
};
3030

3131
/**

0 commit comments

Comments
 (0)