From 20f63c0af28b0244c9f73e69e3d8f20f43074904 Mon Sep 17 00:00:00 2001 From: Richard Davey Date: Sun, 22 Sep 2013 15:21:51 +0100 Subject: [PATCH] Fixed Graphics not working correctly. --- examples/assets/fonts/megadeth_tlb.png | Bin 0 -> 13570 bytes examples/display/graphics.php | 83 +++++++++++++++++ src/gameobjects/Graphics.js | 121 +++++-------------------- src/utils/Utils.js | 9 +- 4 files changed, 106 insertions(+), 107 deletions(-) create mode 100644 examples/assets/fonts/megadeth_tlb.png create mode 100644 examples/display/graphics.php diff --git a/examples/assets/fonts/megadeth_tlb.png b/examples/assets/fonts/megadeth_tlb.png new file mode 100644 index 0000000000000000000000000000000000000000..1f46ce76e6137c34b445562e860939a9554fe472 GIT binary patch literal 13570 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 IM6N<$f}`*aLI3~& literal 0 HcmV?d00001 diff --git a/examples/display/graphics.php b/examples/display/graphics.php new file mode 100644 index 00000000..3c89137c --- /dev/null +++ b/examples/display/graphics.php @@ -0,0 +1,83 @@ + + + + + diff --git a/src/gameobjects/Graphics.js b/src/gameobjects/Graphics.js index b26aa5c2..a28f45ff 100644 --- a/src/gameobjects/Graphics.js +++ b/src/gameobjects/Graphics.js @@ -1,124 +1,45 @@ Phaser.Graphics = function (game, x, y) { - // If exists = false then the Sprite isn't updated by the core game loop or physics subsystem at all - this.exists = true; + PIXI.Graphics.call(this); - // This is a handy little var your game can use to determine if a sprite is alive or not, it doesn't effect rendering - this.alive = true; - - this.group = null; - - this.name = ''; - - this.game = game; - - PIXI.DisplayObjectContainer.call(this); + Phaser.Sprite.call(this, game, x, y); this.type = Phaser.GRAPHICS; - this.position.x = x; - this.position.y = y; - - // Replaces the PIXI.Point with a slightly more flexible one - this.scale = new Phaser.Point(1, 1); - - // Influence of camera movement upon the position - this.scrollFactor = new Phaser.Point(1, 1); - - // A mini cache for storing all of the calculated values - this._cache = { - - dirty: false, - - // Transform cache - a00: 1, a01: 0, a02: x, a10: 0, a11: 1, a12: y, id: 1, - - // The previous calculated position inc. camera x/y and scrollFactor - x: -1, y: -1, - - // The actual scale values based on the worldTransform - scaleX: 1, scaleY: 1 - - }; - - this._cache.x = this.x - (this.game.world.camera.x * this.scrollFactor.x); - this._cache.y = this.y - (this.game.world.camera.y * this.scrollFactor.y); - - this.renderable = true; - - /** - * The alpha of the fill of this graphics object - * - * @property fillAlpha - * @type Number - */ - this.fillAlpha = 1; - - /** - * The width of any lines drawn - * - * @property lineWidth - * @type Number - */ - this.lineWidth = 0; - - /** - * The color of any lines drawn - * - * @property lineColor - * @type String - */ - this.lineColor = "black"; - - /** - * Graphics data - * - * @property graphicsData - * @type Array - * @private - */ - this.graphicsData = []; - - /** - * Current path - * - * @property currentPath - * @type Object - * @private - */ - this.currentPath = {points:[]}; - }; -Phaser.Graphics.prototype = Phaser.Utils.extend(true, PIXI.Graphics.prototype, PIXI.DisplayObjectContainer.prototype, Phaser.Sprite.prototype); +Phaser.Graphics.prototype = Object.create( PIXI.Graphics.prototype ); Phaser.Graphics.prototype.constructor = Phaser.Graphics; +Phaser.Graphics.prototype = Phaser.Utils.extend(true, Phaser.Graphics.prototype, Phaser.Sprite.prototype); + // Add our own custom methods /** * Automatically called by World.update */ -Phaser.Graphics.prototype.update = function() { +Phaser.Graphics.prototype.OLDupdate = function() { - if (!this.exists) - { - return; - } + // if (!this.exists) + // { + // return; + // } - this._cache.dirty = false; + // this._cache.dirty = false; - this._cache.x = this.x - (this.game.world.camera.x * this.scrollFactor.x); - this._cache.y = this.y - (this.game.world.camera.y * this.scrollFactor.y); + // this._cache.x = this.x - (this.game.world.camera.x * this.scrollFactor.x); + // this._cache.y = this.y - (this.game.world.camera.y * this.scrollFactor.y); - if (this.position.x != this._cache.x || this.position.y != this._cache.y) - { - this.position.x = this._cache.x; - this.position.y = this._cache.y; - this._cache.dirty = true; - } + // if (this.position.x != this._cache.x || this.position.y != this._cache.y) + // { + // this.position.x = this._cache.x; + // this.position.y = this._cache.y; + // this._cache.dirty = true; + // } } +/* Object.defineProperty(Phaser.Graphics.prototype, 'angle', { get: function() { @@ -154,3 +75,5 @@ Object.defineProperty(Phaser.Graphics.prototype, 'y', { } }); + +*/ diff --git a/src/utils/Utils.js b/src/utils/Utils.js index 9aee2e8f..ed08123e 100644 --- a/src/utils/Utils.js +++ b/src/utils/Utils.js @@ -87,13 +87,6 @@ Phaser.Utils = { return true; }, - - // deep, target, objects to copy to the target object - // This is a slightly modified version of jQuery.extend (http://api.jquery.com/jQuery.extend/) - // deep (boolean) - // target (object to add to) - // objects ... (objects to recurse and copy from) - /** * This is a slightly modified version of jQuery.extend (http://api.jquery.com/jQuery.extend/) * @method extend @@ -156,7 +149,7 @@ Phaser.Utils = { } // Never move original objects, clone them - target[name] = extend(deep, clone, copy); + target[name] = Phaser.Utils.extend(deep, clone, copy); // Don't bring in undefined values }