diff --git a/Phaser/gameobjects/Sprite.ts b/Phaser/gameobjects/Sprite.ts index c546c291..61677506 100644 --- a/Phaser/gameobjects/Sprite.ts +++ b/Phaser/gameobjects/Sprite.ts @@ -229,7 +229,7 @@ module Phaser { if (this.group) { - //this.group.bringToTop(this); + this.group.bringToTop(this); } } diff --git a/Phaser/loader/Loader.ts b/Phaser/loader/Loader.ts index 6e27c030..ee92fb94 100644 --- a/Phaser/loader/Loader.ts +++ b/Phaser/loader/Loader.ts @@ -86,6 +86,11 @@ module Phaser { */ public crossOrigin: string = ''; + // If you want to append a URL before the path of any asset you can set this here. + // Useful if you need to allow an asset url to be configured outside of the game code. + // MUST have / on the end of it! + public baseURL: string = ''; + public onFileComplete: Phaser.Signal; public onFileError: Phaser.Signal; public onLoadStart: Phaser.Signal; @@ -326,7 +331,7 @@ module Phaser { file.data.onload = () => this.fileComplete(file.key); file.data.onerror = () => this.fileError(file.key); file.data.crossOrigin = this.crossOrigin; - file.data.src = file.url; + file.data.src = this.baseURL + file.url; break; case 'audio': @@ -338,7 +343,7 @@ module Phaser { // WebAudio or Audio Tag? if (this.game.sound.usingWebAudio) { - this._xhr.open("GET", file.url, true); + this._xhr.open("GET", this.baseURL + file.url, true); this._xhr.responseType = "arraybuffer"; this._xhr.onload = () => this.fileComplete(file.key); this._xhr.onerror = () => this.fileError(file.key); @@ -352,7 +357,7 @@ module Phaser { file.data = new Audio(); file.data.name = file.key; file.data.preload = 'auto'; - file.data.src = file.url; + file.data.src = this.baseURL + file.url; this.fileComplete(file.key); } else @@ -361,7 +366,7 @@ module Phaser { file.data.name = file.key; file.data.onerror = () => this.fileError(file.key); file.data.preload = 'auto'; - file.data.src = file.url; + file.data.src = this.baseURL + file.url; file.data.addEventListener('canplaythrough', Phaser.GAMES[this.game.id].load.fileComplete(file.key), false); file.data.load(); } @@ -371,7 +376,7 @@ module Phaser { break; case 'text': - this._xhr.open("GET", file.url, true); + this._xhr.open("GET", this.baseURL + file.url, true); this._xhr.responseType = "text"; this._xhr.onload = () => this.fileComplete(file.key); this._xhr.onerror = () => this.fileError(file.key); @@ -454,7 +459,7 @@ module Phaser { { // Load the JSON or XML before carrying on with the next file loadNext = false; - this._xhr.open("GET", file.atlasURL, true); + this._xhr.open("GET", this.baseURL + file.atlasURL, true); this._xhr.responseType = "text"; if (file.format == Loader.TEXTURE_ATLAS_JSON_ARRAY) diff --git a/Phaser/physics/arcade/Body.ts b/Phaser/physics/arcade/Body.ts index 1f1e9971..1c056bb3 100644 --- a/Phaser/physics/arcade/Body.ts +++ b/Phaser/physics/arcade/Body.ts @@ -218,89 +218,6 @@ module Phaser.Physics { return this.position.y - this.oldPosition.y; } - - - - - - - - - - // MOVE THESE TO A UTIL - - public render(context:CanvasRenderingContext2D) { - - context.beginPath(); - context.strokeStyle = 'rgb(0,255,0)'; - context.strokeRect(this.position.x - this.bounds.halfWidth, this.position.y - this.bounds.halfHeight, this.bounds.width, this.bounds.height); - context.stroke(); - context.closePath(); - - // center point - context.fillStyle = 'rgb(0,255,0)'; - context.fillRect(this.position.x, this.position.y, 2, 2); - - if (this.touching & Phaser.Types.LEFT) - { - context.beginPath(); - context.strokeStyle = 'rgb(255,0,0)'; - context.moveTo(this.position.x - this.bounds.halfWidth, this.position.y - this.bounds.halfHeight); - context.lineTo(this.position.x - this.bounds.halfWidth, this.position.y + this.bounds.halfHeight); - context.stroke(); - context.closePath(); - } - if (this.touching & Phaser.Types.RIGHT) - { - context.beginPath(); - context.strokeStyle = 'rgb(255,0,0)'; - context.moveTo(this.position.x + this.bounds.halfWidth, this.position.y - this.bounds.halfHeight); - context.lineTo(this.position.x + this.bounds.halfWidth, this.position.y + this.bounds.halfHeight); - context.stroke(); - context.closePath(); - } - - if (this.touching & Phaser.Types.UP) - { - context.beginPath(); - context.strokeStyle = 'rgb(255,0,0)'; - context.moveTo(this.position.x - this.bounds.halfWidth, this.position.y - this.bounds.halfHeight); - context.lineTo(this.position.x + this.bounds.halfWidth, this.position.y - this.bounds.halfHeight); - context.stroke(); - context.closePath(); - } - if (this.touching & Phaser.Types.DOWN) - { - context.beginPath(); - context.strokeStyle = 'rgb(255,0,0)'; - context.moveTo(this.position.x - this.bounds.halfWidth, this.position.y + this.bounds.halfHeight); - context.lineTo(this.position.x + this.bounds.halfWidth, this.position.y + this.bounds.halfHeight); - context.stroke(); - context.closePath(); - } - - } - - - /** - * Render debug infos. (including name, bounds info, position and some other properties) - * @param x {number} X position of the debug info to be rendered. - * @param y {number} Y position of the debug info to be rendered. - * @param [color] {number} color of the debug info to be rendered. (format is css color string) - */ - public renderDebugInfo(x: number, y: number, color: string = 'rgb(255,255,255)') { - - this.sprite.texture.context.fillStyle = color; - this.sprite.texture.context.fillText('Sprite: (' + this.sprite.width + ' x ' + this.sprite.height + ')', x, y); - //this.sprite.texture.context.fillText('x: ' + this._sprite.frameBounds.x.toFixed(1) + ' y: ' + this._sprite.frameBounds.y.toFixed(1) + ' rotation: ' + this._sprite.rotation.toFixed(1), x, y + 14); - this.sprite.texture.context.fillText('x: ' + this.bounds.x.toFixed(1) + ' y: ' + this.bounds.y.toFixed(1) + ' rotation: ' + this.sprite.transform.rotation.toFixed(0), x, y + 14); - this.sprite.texture.context.fillText('vx: ' + this.velocity.x.toFixed(1) + ' vy: ' + this.velocity.y.toFixed(1), x, y + 28); - this.sprite.texture.context.fillText('acx: ' + this.acceleration.x.toFixed(1) + ' acy: ' + this.acceleration.y.toFixed(1), x, y + 42); - this.sprite.texture.context.fillText('angVx: ' + this.angularVelocity.toFixed(1) + ' angAc: ' + this.angularAcceleration.toFixed(1), x, y + 56); - - } - - } } \ No newline at end of file diff --git a/Phaser/utils/DebugUtils.ts b/Phaser/utils/DebugUtils.ts index bbe08b07..57e9fffc 100644 --- a/Phaser/utils/DebugUtils.ts +++ b/Phaser/utils/DebugUtils.ts @@ -295,6 +295,81 @@ module Phaser { } + /* + public render(context:CanvasRenderingContext2D) { + + context.beginPath(); + context.strokeStyle = 'rgb(0,255,0)'; + context.strokeRect(this.position.x - this.bounds.halfWidth, this.position.y - this.bounds.halfHeight, this.bounds.width, this.bounds.height); + context.stroke(); + context.closePath(); + + // center point + context.fillStyle = 'rgb(0,255,0)'; + context.fillRect(this.position.x, this.position.y, 2, 2); + + if (this.touching & Phaser.Types.LEFT) + { + context.beginPath(); + context.strokeStyle = 'rgb(255,0,0)'; + context.moveTo(this.position.x - this.bounds.halfWidth, this.position.y - this.bounds.halfHeight); + context.lineTo(this.position.x - this.bounds.halfWidth, this.position.y + this.bounds.halfHeight); + context.stroke(); + context.closePath(); + } + if (this.touching & Phaser.Types.RIGHT) + { + context.beginPath(); + context.strokeStyle = 'rgb(255,0,0)'; + context.moveTo(this.position.x + this.bounds.halfWidth, this.position.y - this.bounds.halfHeight); + context.lineTo(this.position.x + this.bounds.halfWidth, this.position.y + this.bounds.halfHeight); + context.stroke(); + context.closePath(); + } + + if (this.touching & Phaser.Types.UP) + { + context.beginPath(); + context.strokeStyle = 'rgb(255,0,0)'; + context.moveTo(this.position.x - this.bounds.halfWidth, this.position.y - this.bounds.halfHeight); + context.lineTo(this.position.x + this.bounds.halfWidth, this.position.y - this.bounds.halfHeight); + context.stroke(); + context.closePath(); + } + if (this.touching & Phaser.Types.DOWN) + { + context.beginPath(); + context.strokeStyle = 'rgb(255,0,0)'; + context.moveTo(this.position.x - this.bounds.halfWidth, this.position.y + this.bounds.halfHeight); + context.lineTo(this.position.x + this.bounds.halfWidth, this.position.y + this.bounds.halfHeight); + context.stroke(); + context.closePath(); + } + + } + */ + + /** + * Render debug infos. (including name, bounds info, position and some other properties) + * @param x {number} X position of the debug info to be rendered. + * @param y {number} Y position of the debug info to be rendered. + * @param [color] {number} color of the debug info to be rendered. (format is css color string) + */ + /* + public renderDebugInfo(x: number, y: number, color: string = 'rgb(255,255,255)') { + + this.sprite.texture.context.fillStyle = color; + this.sprite.texture.context.fillText('Sprite: (' + this.sprite.width + ' x ' + this.sprite.height + ')', x, y); + //this.sprite.texture.context.fillText('x: ' + this._sprite.frameBounds.x.toFixed(1) + ' y: ' + this._sprite.frameBounds.y.toFixed(1) + ' rotation: ' + this._sprite.rotation.toFixed(1), x, y + 14); + this.sprite.texture.context.fillText('x: ' + this.bounds.x.toFixed(1) + ' y: ' + this.bounds.y.toFixed(1) + ' rotation: ' + this.sprite.transform.rotation.toFixed(0), x, y + 14); + this.sprite.texture.context.fillText('vx: ' + this.velocity.x.toFixed(1) + ' vy: ' + this.velocity.y.toFixed(1), x, y + 28); + this.sprite.texture.context.fillText('acx: ' + this.acceleration.x.toFixed(1) + ' acy: ' + this.acceleration.y.toFixed(1), x, y + 42); + this.sprite.texture.context.fillText('angVx: ' + this.angularVelocity.toFixed(1) + ' angAc: ' + this.angularAcceleration.toFixed(1), x, y + 56); + + } + */ + + } } \ No newline at end of file diff --git a/README.md b/README.md index 9cacad53..97ca1473 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,8 @@ Future Plans * Joypad support. * Gestures input class. * Integrate the Advanced Physics system that is 90% ready but needs updating for TypeScript 0.9.1. +* We can streamline the code for a lot of the CanvasRenderer calls re: global ops, alpha, etc. +* Move getOffset inside Phaser.Display.Canvas ToDo before release