From a3b27fbf321cf4bf0263af46b6203371955d39d0 Mon Sep 17 00:00:00 2001 From: Richard Davey Date: Sun, 28 Apr 2013 14:59:44 +0100 Subject: [PATCH] Fixed daft issue in Camera and fully implemented tilemap collision. --- Docs/phaser logo sprite.gif | Bin 0 -> 3651 bytes Docs/phaserSprite.gif | Bin 0 -> 531 bytes Docs/phaser_desert.png | Bin 0 -> 108579 bytes Phaser/gameobjects/Emitter.ts | 5 ++-- Phaser/gameobjects/Particle.ts | 1 + Phaser/gameobjects/Tilemap.ts | 3 --- Phaser/geom/Quad.ts | 8 ++++++ Phaser/system/Camera.ts | 39 ++++++++++++++++----------- README.md | 2 ++ Tests/cameras/camera bounds.js | 5 +++- Tests/cameras/camera bounds.ts | 10 +++++-- Tests/phaser.js | 48 ++++++++++++++++++++------------- Tests/tilemap/collision.js | 48 +++++++++------------------------ Tests/tilemap/collision.ts | 43 ++++++++++------------------- build/phaser.js | 48 ++++++++++++++++++++------------- 15 files changed, 135 insertions(+), 125 deletions(-) create mode 100644 Docs/phaser logo sprite.gif create mode 100644 Docs/phaserSprite.gif create mode 100644 Docs/phaser_desert.png diff --git a/Docs/phaser logo sprite.gif b/Docs/phaser logo sprite.gif new file mode 100644 index 0000000000000000000000000000000000000000..c66b810cb604049adb23e1cc08a73298c3f48127 GIT binary patch literal 3651 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

%Mcy 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 0) { particle.allowCollisions = Collision.ANY; - particle.elasticity = Collide; - //particle.width *= Collide; - //particle.height *= Collide; + particle.width *= Collide; + particle.height *= Collide; //particle.centerOffsets(); } else diff --git a/Phaser/gameobjects/Particle.ts b/Phaser/gameobjects/Particle.ts index 1557a626..c781f657 100644 --- a/Phaser/gameobjects/Particle.ts +++ b/Phaser/gameobjects/Particle.ts @@ -22,6 +22,7 @@ module Phaser { this.lifespan = 0; this.friction = 500; + } /** diff --git a/Phaser/gameobjects/Tilemap.ts b/Phaser/gameobjects/Tilemap.ts index e119e9aa..78d31d0e 100644 --- a/Phaser/gameobjects/Tilemap.ts +++ b/Phaser/gameobjects/Tilemap.ts @@ -97,8 +97,6 @@ module Phaser { this.generateTiles(tileQuantity); - console.log('generate layer csv'); - } private parseTiledJSON(data: string, key: string) { @@ -136,7 +134,6 @@ module Phaser { layer.addColumn(row); c = 0; } - console.log('generate layer json'); } layer.updateBounds(); diff --git a/Phaser/geom/Quad.ts b/Phaser/geom/Quad.ts index bfad11db..e1bb7b85 100644 --- a/Phaser/geom/Quad.ts +++ b/Phaser/geom/Quad.ts @@ -68,6 +68,14 @@ module Phaser { return this.y + this.height; } + public get halfWidth(): number { + return this.width / 2; + } + + public get halfHeight(): number { + return this.height / 2; + } + /** * Determines whether the object specified intersects (overlaps) with this Quad object. * This method checks the x, y, width, and height properties of the specified Quad object to see if it intersects with this Quad object. diff --git a/Phaser/system/Camera.ts b/Phaser/system/Camera.ts index 40315a6e..fc6d3d08 100644 --- a/Phaser/system/Camera.ts +++ b/Phaser/system/Camera.ts @@ -60,7 +60,7 @@ module Phaser { private _fxShakeIntensity: number = 0; private _fxShakeDuration: number = 0; private _fxShakeComplete = null; - private _fxShakeOffset: Point = new Point(0, 0); + private _fxShakeOffset: MicroPoint = new MicroPoint(0, 0); private _fxShakeDirection: number = 0; private _fxShakePrevX: number = 0; private _fxShakePrevY: number = 0; @@ -77,8 +77,8 @@ module Phaser { public ID: number; public worldView: Rectangle; public totalSpritesRendered: number; - public scale: Point = new Point(1, 1); - public scroll: Point = new Point(0, 0); + public scale: MicroPoint = new MicroPoint(1, 1); + public scroll: MicroPoint = new MicroPoint(0, 0); public bounds: Rectangle = null; public deadzone: Rectangle = null; @@ -96,7 +96,7 @@ module Phaser { public showShadow: bool = false; public shadowColor: string = 'rgb(0,0,0)'; public shadowBlur: number = 10; - public shadowOffset: Point = new Point(4, 4); + public shadowOffset: MicroPoint = new MicroPoint(4, 4); public visible: bool = true; public alpha: number = 1; @@ -230,22 +230,18 @@ module Phaser { var w: number = this.width / 8; var h: number = this.height / 3; this.deadzone = new Rectangle((this.width - w) / 2, (this.height - h) / 2 - h * 0.25, w, h); - console.log('follow 1'); break; case Camera.STYLE_TOPDOWN: helper = Math.max(this.width, this.height) / 4; this.deadzone = new Rectangle((this.width - helper) / 2, (this.height - helper) / 2, helper, helper); - console.log('follow 2'); break; case Camera.STYLE_TOPDOWN_TIGHT: helper = Math.max(this.width, this.height) / 8; this.deadzone = new Rectangle((this.width - helper) / 2, (this.height - helper) / 2, helper, helper); - console.log('follow 3'); break; case Camera.STYLE_LOCKON: default: this.deadzone = null; - console.log('follow 4'); break; } @@ -253,19 +249,15 @@ module Phaser { public focusOnXY(x: number, y: number) { - console.log('focusOn', x, y); - x += (x > 0) ? 0.0000001 : -0.0000001; y += (y > 0) ? 0.0000001 : -0.0000001; this.scroll.x = Math.round(x - this.worldView.halfWidth); this.scroll.y = Math.round(y - this.worldView.halfHeight); - console.log('focusOn scroll',this.scroll.x, this.scroll.y); - } - public focusOn(point: Point) { + public focusOn(point) { point.x += (point.x > 0) ? 0.0000001 : -0.0000001; point.y += (point.y > 0) ? 0.0000001 : -0.0000001; @@ -291,7 +283,7 @@ module Phaser { } this.bounds.setTo(x, y, width, height); - this.worldView.setTo(x, y, width, height); + this.scroll.setTo(0, 0); this.update(); @@ -342,7 +334,7 @@ module Phaser { } - // Make sure we didn't go outside the camera's bounds + // Make sure we didn't go outside the cameras bounds if (this.bounds !== null) { if (this.scroll.x < this.bounds.left) @@ -369,6 +361,8 @@ module Phaser { this.worldView.x = this.scroll.x; this.worldView.y = this.scroll.y; + //console.log(this.worldView.width, this.worldView.height); + // Input values this.inputX = this.worldView.x + this._game.input.x; this.inputY = this.worldView.y + this._game.input.y; @@ -610,9 +604,10 @@ module Phaser { this.worldView.width = width; this.worldView.height = height; - this.checkClip(); + //console.log('Camera setSize', width, height); + } public renderDebugInfo(x: number, y: number, color?: string = 'rgb(255,255,255)') { @@ -652,6 +647,12 @@ module Phaser { } public set width(value: number) { + + if (value > this._game.stage.width) + { + value = this._game.stage.width; + } + this.worldView.width = value; this.checkClip(); } @@ -661,6 +662,12 @@ module Phaser { } public set height(value: number) { + + if (value > this._game.stage.height) + { + value = this._game.stage.height; + } + this.worldView.height = value; this.checkClip(); } diff --git a/README.md b/README.md index 80fe561c..ff5efa42 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,8 @@ V0.9.4 * Added Tilemap.getTile, getTileFromWorldXY, getTileFromInputXY * Added Tilemap.setCollisionByIndex and setCollisionByRange * Added GameObject.renderRotation boolean to control if the sprite will visually rotate or not (useful when angle needs to change but graphics don't) +* Added additional check to Camera.width/height so you cannot set them larger than the Stage size +* Added Collision.separateTile and Tilemap.collide Requirements diff --git a/Tests/cameras/camera bounds.js b/Tests/cameras/camera bounds.js index c4f2a11a..23bcb4e3 100644 --- a/Tests/cameras/camera bounds.js +++ b/Tests/cameras/camera bounds.js @@ -13,9 +13,9 @@ for(var i = 0; i < 100; i++) { myGame.createSprite(Math.random() * myGame.world.width, Math.random() * myGame.world.height, 'melon'); } + myGame.onRenderCallback = render; } function update() { - myGame.camera.renderDebugInfo(32, 32); if(myGame.input.keyboard.isDown(Phaser.Keyboard.LEFT)) { myGame.camera.scroll.x -= 4; } else if(myGame.input.keyboard.isDown(Phaser.Keyboard.RIGHT)) { @@ -27,4 +27,7 @@ myGame.camera.scroll.y += 4; } } + function render() { + myGame.camera.renderDebugInfo(32, 32); + } })(); diff --git a/Tests/cameras/camera bounds.ts b/Tests/cameras/camera bounds.ts index 86156586..7993662d 100644 --- a/Tests/cameras/camera bounds.ts +++ b/Tests/cameras/camera bounds.ts @@ -25,12 +25,12 @@ myGame.createSprite(Math.random() * myGame.world.width, Math.random() * myGame.world.height, 'melon'); } + myGame.onRenderCallback = render; + } function update() { - myGame.camera.renderDebugInfo(32, 32); - if (myGame.input.keyboard.isDown(Phaser.Keyboard.LEFT)) { myGame.camera.scroll.x -= 4; @@ -51,4 +51,10 @@ } + function render() { + + myGame.camera.renderDebugInfo(32, 32); + + } + })(); diff --git a/Tests/phaser.js b/Tests/phaser.js index 5eb11a15..d96b2a94 100644 --- a/Tests/phaser.js +++ b/Tests/phaser.js @@ -928,12 +928,12 @@ var Phaser; this._fxShakeIntensity = 0; this._fxShakeDuration = 0; this._fxShakeComplete = null; - this._fxShakeOffset = new Phaser.Point(0, 0); + this._fxShakeOffset = new Phaser.MicroPoint(0, 0); this._fxShakeDirection = 0; this._fxShakePrevX = 0; this._fxShakePrevY = 0; - this.scale = new Phaser.Point(1, 1); - this.scroll = new Phaser.Point(0, 0); + this.scale = new Phaser.MicroPoint(1, 1); + this.scroll = new Phaser.MicroPoint(0, 0); this.bounds = null; this.deadzone = null; // Camera Border @@ -947,7 +947,7 @@ var Phaser; this.showShadow = false; this.shadowColor = 'rgb(0,0,0)'; this.shadowBlur = 10; - this.shadowOffset = new Phaser.Point(4, 4); + this.shadowOffset = new Phaser.MicroPoint(4, 4); this.visible = true; this.alpha = 1; // The x/y position of the current input event in world coordinates @@ -1075,32 +1075,26 @@ var Phaser; var w = this.width / 8; var h = this.height / 3; this.deadzone = new Phaser.Rectangle((this.width - w) / 2, (this.height - h) / 2 - h * 0.25, w, h); - console.log('follow 1'); break; case Camera.STYLE_TOPDOWN: helper = Math.max(this.width, this.height) / 4; this.deadzone = new Phaser.Rectangle((this.width - helper) / 2, (this.height - helper) / 2, helper, helper); - console.log('follow 2'); break; case Camera.STYLE_TOPDOWN_TIGHT: helper = Math.max(this.width, this.height) / 8; this.deadzone = new Phaser.Rectangle((this.width - helper) / 2, (this.height - helper) / 2, helper, helper); - console.log('follow 3'); break; case Camera.STYLE_LOCKON: default: this.deadzone = null; - console.log('follow 4'); break; } }; Camera.prototype.focusOnXY = function (x, y) { - console.log('focusOn', x, y); x += (x > 0) ? 0.0000001 : -0.0000001; y += (y > 0) ? 0.0000001 : -0.0000001; this.scroll.x = Math.round(x - this.worldView.halfWidth); this.scroll.y = Math.round(y - this.worldView.halfHeight); - console.log('focusOn scroll', this.scroll.x, this.scroll.y); }; Camera.prototype.focusOn = function (point) { point.x += (point.x > 0) ? 0.0000001 : -0.0000001; @@ -1125,7 +1119,6 @@ var Phaser; this.bounds = new Phaser.Rectangle(); } this.bounds.setTo(x, y, width, height); - this.worldView.setTo(x, y, width, height); this.scroll.setTo(0, 0); this.update(); }; @@ -1155,7 +1148,7 @@ var Phaser; } } } - // Make sure we didn't go outside the camera's bounds + // Make sure we didn't go outside the cameras bounds if(this.bounds !== null) { if(this.scroll.x < this.bounds.left) { this.scroll.x = this.bounds.left; @@ -1172,6 +1165,7 @@ var Phaser; } this.worldView.x = this.scroll.x; this.worldView.y = this.scroll.y; + //console.log(this.worldView.width, this.worldView.height); // Input values this.inputX = this.worldView.x + this._game.input.x; this.inputY = this.worldView.y + this._game.input.y; @@ -1340,7 +1334,8 @@ var Phaser; this.worldView.width = width; this.worldView.height = height; this.checkClip(); - }; + //console.log('Camera setSize', width, height); + }; Camera.prototype.renderDebugInfo = function (x, y, color) { if (typeof color === "undefined") { color = 'rgb(255,255,255)'; } this._game.stage.context.fillStyle = color; @@ -1378,6 +1373,9 @@ var Phaser; return this.worldView.width; }, set: function (value) { + if(value > this._game.stage.width) { + value = this._game.stage.width; + } this.worldView.width = value; this.checkClip(); }, @@ -1389,6 +1387,9 @@ var Phaser; return this.worldView.height; }, set: function (value) { + if(value > this._game.stage.height) { + value = this._game.stage.height; + } this.worldView.height = value; this.checkClip(); }, @@ -3360,6 +3361,20 @@ var Phaser; enumerable: true, configurable: true }); + Object.defineProperty(Quad.prototype, "halfWidth", { + get: function () { + return this.width / 2; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Quad.prototype, "halfHeight", { + get: function () { + return this.height / 2; + }, + enumerable: true, + configurable: true + }); Quad.prototype.intersects = /** * Determines whether the object specified intersects (overlaps) with this Quad object. * This method checks the x, y, width, and height properties of the specified Quad object to see if it intersects with this Quad object. @@ -10581,9 +10596,8 @@ var Phaser; } if(Collide > 0) { particle.allowCollisions = Phaser.Collision.ANY; - particle.elasticity = Collide; - //particle.width *= Collide; - //particle.height *= Collide; + particle.width *= Collide; + particle.height *= Collide; //particle.centerOffsets(); } else { particle.allowCollisions = Phaser.Collision.NONE; @@ -11487,7 +11501,6 @@ var Phaser; this.collisionLayer = layer; this.layers.push(layer); this.generateTiles(tileQuantity); - console.log('generate layer csv'); }; Tilemap.prototype.parseTiledJSON = function (data, key) { // Trim any rogue whitespace from the data @@ -11511,7 +11524,6 @@ var Phaser; layer.addColumn(row); c = 0; } - console.log('generate layer json'); } layer.updateBounds(); var tileQuantity = layer.parseTileOffsets(); diff --git a/Tests/tilemap/collision.js b/Tests/tilemap/collision.js index 2f3592b3..28ff6a33 100644 --- a/Tests/tilemap/collision.js +++ b/Tests/tilemap/collision.js @@ -1,43 +1,19 @@ -var __extends = this.__extends || function (d, b) { - function __() { this.constructor = d; } - __.prototype = b.prototype; - d.prototype = new __(); -}; /// /// -var customParticle2 = (function (_super) { - __extends(customParticle2, _super); - function customParticle2(game) { - _super.call(this, game); - var s = [ - 'carrot', - 'melon', - 'eggplant', - 'mushroom', - 'pineapple' - ]; - this.loadGraphic(game.math.getRandom(s)); - this.elasticity = 0.8; - } - return customParticle2; -})(Phaser.Particle); (function () { var myGame = new Phaser.Game(this, 'game', 800, 600, init, create, update); function init() { myGame.loader.addTextFile('platform', 'assets/maps/platform-test-1.json'); myGame.loader.addImageFile('tiles', 'assets/tiles/platformer_tiles.png'); myGame.loader.addImageFile('ufo', 'assets/sprites/ufo.png'); - myGame.loader.addImageFile('carrot', 'assets/sprites/carrot.png'); myGame.loader.addImageFile('melon', 'assets/sprites/melon.png'); - myGame.loader.addImageFile('eggplant', 'assets/sprites/eggplant.png'); - myGame.loader.addImageFile('mushroom', 'assets/sprites/mushroom.png'); - myGame.loader.addImageFile('pineapple', 'assets/sprites/pineapple.png'); myGame.loader.load(); } var map; var car; var tile; var emitter; + var test; function create() { map = myGame.createTilemap('tiles', 'platform', Phaser.Tilemap.FORMAT_TILED_JSON); map.setCollisionRange(21, 53); @@ -51,14 +27,17 @@ var customParticle2 = (function (_super) { ]); emitter = myGame.createEmitter(32, 80); emitter.width = 700; - emitter.particleClass = customParticle2; - emitter.makeParticles(null, 100, 0, false, 0.7); - emitter.gravity = 100; - emitter.setRotation(0, 0); - emitter.start(false, 10, 0.05); + emitter.makeParticles('melon', 100, 0, false, 1); + emitter.gravity = 200; + emitter.bounce = 0.8; + //emitter.setRotation(0, 0); + emitter.start(false, 10, 0.1); car = myGame.createSprite(250, 64, 'ufo'); car.renderRotation = false; - //car.renderDebug = true; + test = myGame.createSprite(200, 64, 'ufo'); + test.elasticity = 1; + test.velocity.x = 50; + test.velocity.y = 100; car.setBounds(0, 0, map.widthInPixels - 32, map.heightInPixels - 32); } function update() { @@ -74,10 +53,9 @@ var customParticle2 = (function (_super) { } else if(myGame.input.keyboard.isDown(Phaser.Keyboard.DOWN)) { car.velocity.y = 200; } - // Collide the space ship with the particles - myGame.collide(car, emitter); // Collide everything with the map - //map.collide(); - map.collide(emitter); + map.collide(); + // And collide everything in the game :) + myGame.collide(); } })(); diff --git a/Tests/tilemap/collision.ts b/Tests/tilemap/collision.ts index f6925562..cd59bde4 100644 --- a/Tests/tilemap/collision.ts +++ b/Tests/tilemap/collision.ts @@ -1,20 +1,6 @@ /// /// -class customParticle2 extends Phaser.Particle { - - constructor(game:Phaser.Game) { - - super(game); - - var s = ['carrot', 'melon', 'eggplant', 'mushroom', 'pineapple']; - - this.loadGraphic(game.math.getRandom(s)); - this.elasticity = 0.8; - } - -} - (function () { var myGame = new Phaser.Game(this, 'game', 800, 600, init, create, update); @@ -24,11 +10,7 @@ class customParticle2 extends Phaser.Particle { myGame.loader.addTextFile('platform', 'assets/maps/platform-test-1.json'); myGame.loader.addImageFile('tiles', 'assets/tiles/platformer_tiles.png'); myGame.loader.addImageFile('ufo', 'assets/sprites/ufo.png'); - myGame.loader.addImageFile('carrot', 'assets/sprites/carrot.png'); myGame.loader.addImageFile('melon', 'assets/sprites/melon.png'); - myGame.loader.addImageFile('eggplant', 'assets/sprites/eggplant.png'); - myGame.loader.addImageFile('mushroom', 'assets/sprites/mushroom.png'); - myGame.loader.addImageFile('pineapple', 'assets/sprites/pineapple.png'); myGame.loader.load(); @@ -38,6 +20,7 @@ class customParticle2 extends Phaser.Particle { var car: Phaser.Sprite; var tile: Phaser.Tile; var emitter: Phaser.Emitter; + var test: Phaser.Sprite; function create() { @@ -51,15 +34,18 @@ class customParticle2 extends Phaser.Particle { emitter = myGame.createEmitter(32, 80); emitter.width = 700; - emitter.particleClass = customParticle2; - emitter.makeParticles(null, 100, 0, false, 0.7); - emitter.gravity = 100; - emitter.setRotation(0,0); - emitter.start(false, 10, 0.05); + emitter.makeParticles('melon', 100, 0, false, 1); + emitter.gravity = 200; + emitter.bounce = 0.8; + emitter.start(false, 10, 0.1); car = myGame.createSprite(250, 64, 'ufo'); car.renderRotation = false; - //car.renderDebug = true; + + test = myGame.createSprite(200, 64, 'ufo'); + test.elasticity = 1; + test.velocity.x = 50; + test.velocity.y = 100; car.setBounds(0, 0, map.widthInPixels - 32, map.heightInPixels - 32); @@ -88,12 +74,11 @@ class customParticle2 extends Phaser.Particle { car.velocity.y = 200; } - // Collide the space ship with the particles - myGame.collide(car, emitter); - // Collide everything with the map - //map.collide(); - map.collide(emitter); + map.collide(); + + // And collide everything in the game :) + myGame.collide(); } diff --git a/build/phaser.js b/build/phaser.js index 5eb11a15..d96b2a94 100644 --- a/build/phaser.js +++ b/build/phaser.js @@ -928,12 +928,12 @@ var Phaser; this._fxShakeIntensity = 0; this._fxShakeDuration = 0; this._fxShakeComplete = null; - this._fxShakeOffset = new Phaser.Point(0, 0); + this._fxShakeOffset = new Phaser.MicroPoint(0, 0); this._fxShakeDirection = 0; this._fxShakePrevX = 0; this._fxShakePrevY = 0; - this.scale = new Phaser.Point(1, 1); - this.scroll = new Phaser.Point(0, 0); + this.scale = new Phaser.MicroPoint(1, 1); + this.scroll = new Phaser.MicroPoint(0, 0); this.bounds = null; this.deadzone = null; // Camera Border @@ -947,7 +947,7 @@ var Phaser; this.showShadow = false; this.shadowColor = 'rgb(0,0,0)'; this.shadowBlur = 10; - this.shadowOffset = new Phaser.Point(4, 4); + this.shadowOffset = new Phaser.MicroPoint(4, 4); this.visible = true; this.alpha = 1; // The x/y position of the current input event in world coordinates @@ -1075,32 +1075,26 @@ var Phaser; var w = this.width / 8; var h = this.height / 3; this.deadzone = new Phaser.Rectangle((this.width - w) / 2, (this.height - h) / 2 - h * 0.25, w, h); - console.log('follow 1'); break; case Camera.STYLE_TOPDOWN: helper = Math.max(this.width, this.height) / 4; this.deadzone = new Phaser.Rectangle((this.width - helper) / 2, (this.height - helper) / 2, helper, helper); - console.log('follow 2'); break; case Camera.STYLE_TOPDOWN_TIGHT: helper = Math.max(this.width, this.height) / 8; this.deadzone = new Phaser.Rectangle((this.width - helper) / 2, (this.height - helper) / 2, helper, helper); - console.log('follow 3'); break; case Camera.STYLE_LOCKON: default: this.deadzone = null; - console.log('follow 4'); break; } }; Camera.prototype.focusOnXY = function (x, y) { - console.log('focusOn', x, y); x += (x > 0) ? 0.0000001 : -0.0000001; y += (y > 0) ? 0.0000001 : -0.0000001; this.scroll.x = Math.round(x - this.worldView.halfWidth); this.scroll.y = Math.round(y - this.worldView.halfHeight); - console.log('focusOn scroll', this.scroll.x, this.scroll.y); }; Camera.prototype.focusOn = function (point) { point.x += (point.x > 0) ? 0.0000001 : -0.0000001; @@ -1125,7 +1119,6 @@ var Phaser; this.bounds = new Phaser.Rectangle(); } this.bounds.setTo(x, y, width, height); - this.worldView.setTo(x, y, width, height); this.scroll.setTo(0, 0); this.update(); }; @@ -1155,7 +1148,7 @@ var Phaser; } } } - // Make sure we didn't go outside the camera's bounds + // Make sure we didn't go outside the cameras bounds if(this.bounds !== null) { if(this.scroll.x < this.bounds.left) { this.scroll.x = this.bounds.left; @@ -1172,6 +1165,7 @@ var Phaser; } this.worldView.x = this.scroll.x; this.worldView.y = this.scroll.y; + //console.log(this.worldView.width, this.worldView.height); // Input values this.inputX = this.worldView.x + this._game.input.x; this.inputY = this.worldView.y + this._game.input.y; @@ -1340,7 +1334,8 @@ var Phaser; this.worldView.width = width; this.worldView.height = height; this.checkClip(); - }; + //console.log('Camera setSize', width, height); + }; Camera.prototype.renderDebugInfo = function (x, y, color) { if (typeof color === "undefined") { color = 'rgb(255,255,255)'; } this._game.stage.context.fillStyle = color; @@ -1378,6 +1373,9 @@ var Phaser; return this.worldView.width; }, set: function (value) { + if(value > this._game.stage.width) { + value = this._game.stage.width; + } this.worldView.width = value; this.checkClip(); }, @@ -1389,6 +1387,9 @@ var Phaser; return this.worldView.height; }, set: function (value) { + if(value > this._game.stage.height) { + value = this._game.stage.height; + } this.worldView.height = value; this.checkClip(); }, @@ -3360,6 +3361,20 @@ var Phaser; enumerable: true, configurable: true }); + Object.defineProperty(Quad.prototype, "halfWidth", { + get: function () { + return this.width / 2; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Quad.prototype, "halfHeight", { + get: function () { + return this.height / 2; + }, + enumerable: true, + configurable: true + }); Quad.prototype.intersects = /** * Determines whether the object specified intersects (overlaps) with this Quad object. * This method checks the x, y, width, and height properties of the specified Quad object to see if it intersects with this Quad object. @@ -10581,9 +10596,8 @@ var Phaser; } if(Collide > 0) { particle.allowCollisions = Phaser.Collision.ANY; - particle.elasticity = Collide; - //particle.width *= Collide; - //particle.height *= Collide; + particle.width *= Collide; + particle.height *= Collide; //particle.centerOffsets(); } else { particle.allowCollisions = Phaser.Collision.NONE; @@ -11487,7 +11501,6 @@ var Phaser; this.collisionLayer = layer; this.layers.push(layer); this.generateTiles(tileQuantity); - console.log('generate layer csv'); }; Tilemap.prototype.parseTiledJSON = function (data, key) { // Trim any rogue whitespace from the data @@ -11511,7 +11524,6 @@ var Phaser; layer.addColumn(row); c = 0; } - console.log('generate layer json'); } layer.updateBounds(); var tileQuantity = layer.parseTileOffsets();