From 9c0f7be953999be94339f5ac4964917ca33649bc Mon Sep 17 00:00:00 2001 From: Eemeli Kelokorpi Date: Thu, 10 Jan 2019 13:47:59 +0200 Subject: [PATCH 01/18] Updated version number --- src/engine/core.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/core.js b/src/engine/core.js index d05a6a1f..fe696dd1 100644 --- a/src/engine/core.js +++ b/src/engine/core.js @@ -99,7 +99,7 @@ var game = { Engine version. @property {String} version **/ - version: '2.12.0', + version: '2.12.1dev', /** @property {Boolean} _booted @private From 94f27ee1d0c57fe5a562e07a7d692c3aa07cc958 Mon Sep 17 00:00:00 2001 From: Eemeli Kelokorpi Date: Mon, 14 Jan 2019 19:48:55 +0200 Subject: [PATCH 02/18] Fixed support for headless mode --- src/engine/renderer/container.js | 6 ++++-- src/engine/renderer/sprite.js | 6 ++++-- src/engine/renderer/tilingsprite.js | 6 ++++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/engine/renderer/container.js b/src/engine/renderer/container.js index 58057522..895e3630 100644 --- a/src/engine/renderer/container.js +++ b/src/engine/renderer/container.js @@ -791,8 +791,10 @@ game.addAttributes('Container', { _context: null }); -game.Container._canvas = document.createElement('canvas'); -game.Container._context = game.Container._canvas.getContext('2d'); +if (typeof document !== 'undefined') { + game.Container._canvas = document.createElement('canvas'); + game.Container._context = game.Container._canvas.getContext('2d'); +} game.defineProperties('Container', { /** diff --git a/src/engine/renderer/sprite.js b/src/engine/renderer/sprite.js index aee0905b..994c995a 100644 --- a/src/engine/renderer/sprite.js +++ b/src/engine/renderer/sprite.js @@ -306,7 +306,9 @@ game.addAttributes('Sprite', { } }); -game.Sprite._canvas = document.createElement('canvas'); -game.Sprite._context = game.Sprite._canvas.getContext('2d'); +if (typeof document !== 'undefined') { + game.Sprite._canvas = document.createElement('canvas'); + game.Sprite._context = game.Sprite._canvas.getContext('2d'); +} }); diff --git a/src/engine/renderer/tilingsprite.js b/src/engine/renderer/tilingsprite.js index 5d20086d..a7d1f8f4 100644 --- a/src/engine/renderer/tilingsprite.js +++ b/src/engine/renderer/tilingsprite.js @@ -273,8 +273,10 @@ game.addAttributes('TilingSprite', { } }); -game.TilingSprite._canvas = document.createElement('canvas'); -game.TilingSprite._context = game.TilingSprite._canvas.getContext('2d'); +if (typeof document !== 'undefined') { + game.TilingSprite._canvas = document.createElement('canvas'); + game.TilingSprite._context = game.TilingSprite._canvas.getContext('2d'); +} game.defineProperties('TilingSprite', { width: { From 89cd73cb0bc0da928fdca4905ba583430b86fa1a Mon Sep 17 00:00:00 2001 From: Eemeli Kelokorpi Date: Mon, 14 Jan 2019 22:04:37 +0200 Subject: [PATCH 03/18] Fixed Container caching --- src/engine/renderer/container.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/engine/renderer/container.js b/src/engine/renderer/container.js index 895e3630..f5bfc74d 100644 --- a/src/engine/renderer/container.js +++ b/src/engine/renderer/container.js @@ -585,6 +585,8 @@ game.createClass('Container', { var context = game.Container._context; var bounds = this._getBounds(); + if (bounds.width === 0 || bounds.height === 0) return; + canvas.width = (bounds.width / this.scale.x) * game.scale; canvas.height = (bounds.height / this.scale.y) * game.scale; @@ -593,8 +595,10 @@ game.createClass('Container', { this._renderCanvas(context); this._renderChildren(context); - - var texture = game.Texture.fromCanvas(canvas); + + var texture = game.Texture.fromImage(canvas.toDataURL()); + texture.width = canvas.width; + texture.height = canvas.height; var sprite = new game.Sprite(texture); sprite._parent = this; From 7908c3d8be1e94e811b65a131507564769ae431f Mon Sep 17 00:00:00 2001 From: Eemeli Kelokorpi Date: Wed, 16 Jan 2019 17:59:36 +0200 Subject: [PATCH 04/18] Added delta parameter to _update method in Body --- src/engine/physics.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/engine/physics.js b/src/engine/physics.js index ce64e855..7f6f0b7a 100644 --- a/src/engine/physics.js +++ b/src/engine/physics.js @@ -173,20 +173,22 @@ game.createClass('Body', { /** @method _update + @param {Number} [delta] @private **/ - _update: function() { + _update: function(delta) { + delta = delta || game.delta; this.last.copy(this.position); if (this.static) return; - this.velocity.x += this.world.gravity.x * this.mass * game.delta; - this.velocity.y += this.world.gravity.y * this.mass * game.delta; - this.velocity.x += this.force.x * game.delta; - this.velocity.y += this.force.y * game.delta; + this.velocity.x += this.world.gravity.x * this.mass * delta; + this.velocity.y += this.world.gravity.y * this.mass * delta; + this.velocity.x += this.force.x * delta; + this.velocity.y += this.force.y * delta; if (this.damping > 0 && this.damping < 1) { - var damping = Math.pow(1 - this.damping, game.delta); + var damping = Math.pow(1 - this.damping, delta); this.velocity.x *= damping; this.velocity.y *= damping; } @@ -200,8 +202,8 @@ game.createClass('Body', { if (this.velocity.y < -this.velocityLimit.y) this.velocity.y = -this.velocityLimit.y; } - this.position.x += this.velocity.x * game.delta; - this.position.y += this.velocity.y * game.delta; + this.position.x += this.velocity.x * delta; + this.position.y += this.velocity.y * delta; } }); From c51e2aaacedac32fc0a12d2c514f24a6d80cee1c Mon Sep 17 00:00:00 2001 From: Eemeli Kelokorpi Date: Sun, 20 Jan 2019 23:18:08 +0200 Subject: [PATCH 05/18] Fixed headless mode to call onReady function --- src/engine/core.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/engine/core.js b/src/engine/core.js index fe696dd1..a0a93ad9 100644 --- a/src/engine/core.js +++ b/src/engine/core.js @@ -1037,7 +1037,10 @@ var game = { } } - if (typeof document === 'undefined') return; + if (typeof document === 'undefined') { + this.onReady(); + return; + } this._logoSource = document.createElement('img'); this._logoSource.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAA8BAMAAABfg2ObAAAALVBMVEUAAAD4uABHR0f4uABHR0f4uAD4uABHR0dHR0dHR0f4uABHR0f4uABHR0f4uADOcJEWAAAADXRSTlMAqqpV6UQkUMmUdBvjKrIhowAAAH1JREFUSMdjKLmLB7gz4Ae++DRfIaD5Ll4wqnlU8xDQzCqIDKRI05z3DgUsIEmzHapmgVHNo5qpovkGInkS1uykhApmo2cMGTyaFRgIAMZRzaOaRzUPJs2sEM0BZGlmSDYGAjMG0jUjwKjmUc2jmontlE0gUXMJckNgA2l6ASc7KJOPBNRIAAAAAElFTkSuQmCC'; this._logoSource.onload = this._readyLogo.bind(this); From 3d34d245850fcf29df7059d565a78421e576507c Mon Sep 17 00:00:00 2001 From: Eemeli Kelokorpi Date: Mon, 21 Jan 2019 14:27:21 +0200 Subject: [PATCH 06/18] Fixed merge to work on headless mode --- src/engine/core.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/core.js b/src/engine/core.js index a0a93ad9..c2599a48 100644 --- a/src/engine/core.js +++ b/src/engine/core.js @@ -398,7 +398,7 @@ var game = { var ext = from[key]; if ( typeof ext !== 'object' || - ext instanceof HTMLElement || + (typeof document !== 'undefined' && ext instanceof HTMLElement) || ext instanceof this.Class || ext instanceof this.Container ) { From e5b5aff41d98273f8c22f70edf2e4de871474087 Mon Sep 17 00:00:00 2001 From: Eemeli Kelokorpi Date: Mon, 21 Jan 2019 22:50:19 +0200 Subject: [PATCH 07/18] Added manualUpdate parameter to Physics constructor --- src/engine/physics.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/engine/physics.js b/src/engine/physics.js index 7f6f0b7a..ba36839d 100644 --- a/src/engine/physics.js +++ b/src/engine/physics.js @@ -234,6 +234,7 @@ game.defineProperties('Body', { @constructor @param {Number} [x] Gravity x @param {Number} [y] Gravity y + @param {Boolean} [manualUpdate] Don't update physics automatically **/ game.createClass('Physics', { /** @@ -253,11 +254,11 @@ game.createClass('Physics', { **/ _collisionGroups: {}, - staticInit: function(x, y) { + staticInit: function(x, y, manualUpdate) { x = typeof x === 'number' ? x : 0; y = typeof y === 'number' ? y : 980; this.gravity = new game.Vector(x, y); - if (game.scene) game.scene.physics.push(this); + if (game.scene && !manualUpdate) game.scene.physics.push(this); }, /** From 11d8b368156798b586bc2e713ae346969c46b4c1 Mon Sep 17 00:00:00 2001 From: Eemeli Kelokorpi Date: Thu, 31 Jan 2019 10:04:45 +0200 Subject: [PATCH 08/18] Renamed Body _update function to update Fixed Body update to work without world --- src/engine/physics.js | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/engine/physics.js b/src/engine/physics.js index ba36839d..c646d723 100644 --- a/src/engine/physics.js +++ b/src/engine/physics.js @@ -87,14 +87,18 @@ game.createClass('Body', { @private **/ _collisionGroup: 0, - - init: function(properties) { + + staticInit: function() { this.force = new game.Vector(); this.position = new game.Vector(); this.velocity = new game.Vector(); this.velocityLimit = new game.Vector(980, 980); this.last = new game.Vector(); + }, + + init: function(properties) { game.merge(this, properties); + return true; }, /** @@ -172,18 +176,20 @@ game.createClass('Body', { }, /** - @method _update + Update body position and velocity. + @method update @param {Number} [delta] - @private **/ - _update: function(delta) { + update: function(delta) { delta = delta || game.delta; this.last.copy(this.position); if (this.static) return; - - this.velocity.x += this.world.gravity.x * this.mass * delta; - this.velocity.y += this.world.gravity.y * this.mass * delta; + + if (this.world) { + this.velocity.x += this.world.gravity.x * this.mass * delta; + this.velocity.y += this.world.gravity.y * this.mass * delta; + } this.velocity.x += this.force.x * delta; this.velocity.y += this.force.y * delta; @@ -437,7 +443,7 @@ game.createClass('Physics', { this.bodies.splice(i, 1); } else { - this.bodies[i]._update(); + this.bodies[i].update(); } } }, From 202738c95efcedfb6fcda1589260919275ff3284 Mon Sep 17 00:00:00 2001 From: Eemeli Kelokorpi Date: Tue, 5 Feb 2019 10:21:43 +0200 Subject: [PATCH 09/18] Fixed to show error when trying to load audio that is not found --- src/engine/audio.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/engine/audio.js b/src/engine/audio.js index 5f3943c7..2a46d38b 100644 --- a/src/engine/audio.js +++ b/src/engine/audio.js @@ -277,6 +277,7 @@ game.createClass('Audio', { request.open('GET', realPath, true); request.responseType = 'arraybuffer'; request.onload = this._decode.bind(this, request, path, callback); + request.onerror = this._error.bind(this, path, callback); request.send(); } }, From c76200b72c92fa0e38d22af4d65f70239ac92016 Mon Sep 17 00:00:00 2001 From: Eemeli Kelokorpi Date: Thu, 7 Feb 2019 14:02:59 +0200 Subject: [PATCH 10/18] Added Chrome version detection --- src/engine/core.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/engine/core.js b/src/engine/core.js index c2599a48..24c70d97 100644 --- a/src/engine/core.js +++ b/src/engine/core.js @@ -799,6 +799,9 @@ var game = { this.device.facebook = /FB/i.test(navigator.userAgent); this.device.panda2 = /Panda2/i.test(navigator.userAgent); this.device.electron = (!this.device.panda2 && /Electron/i.test(navigator.userAgent)); + this.device.chrome = /Chrome/i.test(navigator.userAgent); + var chromeVer = navigator.userAgent.match(/Chrome\/([\d.]+)/); + this.device.chromeVer = chromeVer ? parseInt(chromeVer[1]) : 0; this.device.mobile = this.device.iOS || this.device.android || this.device.wp || this.device.wt; if (this.device.androidTV) this.device.mobile = false; From 4fdcdfb3d0a674a796c77950ff37102d552d465b Mon Sep 17 00:00:00 2001 From: Eemeli Kelokorpi Date: Sat, 9 Feb 2019 13:23:24 +0200 Subject: [PATCH 11/18] Fixed to disable input functions when system is paused --- src/engine/input.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/engine/input.js b/src/engine/input.js index 1c5e17ba..b0208688 100644 --- a/src/engine/input.js +++ b/src/engine/input.js @@ -168,7 +168,7 @@ game.createClass('Input', { window.focus(); game.renderer.canvas.focus(); } - if (!game.scene) return; + if (!game.scene || game.system.paused) return; this._preventDefault(input.event); this._calculateXY(input); @@ -186,7 +186,7 @@ game.createClass('Input', { @private **/ _inputmove: function(input) { - if (!game.scene) return; + if (!game.scene || game.system.paused) return; this._preventDefault(input.event); this._calculateXY(input); @@ -213,7 +213,7 @@ game.createClass('Input', { @private **/ _inputup: function(input) { - if (!game.scene) return; + if (!game.scene || game.system.paused) return; this._preventDefault(input.event); this._calculateXY(input); @@ -267,7 +267,7 @@ game.createClass('Input', { @private **/ _mouseout: function(event) { - if (!game.scene) return; + if (!game.scene || game.system.paused) return; var input = this._mouseInput; input.event = event; From b9f782cccb7c4b7b7059e5929fef1a68ae2a9f66 Mon Sep 17 00:00:00 2001 From: Eemeli Kelokorpi Date: Sat, 2 Mar 2019 10:06:28 +0200 Subject: [PATCH 12/18] Added noCache parameter to addAsset --- src/engine/core.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/engine/core.js b/src/engine/core.js index 24c70d97..5dbc4973 100644 --- a/src/engine/core.js +++ b/src/engine/core.js @@ -199,12 +199,14 @@ var game = { @method addAsset @param {String} filename @param {String} [id] + @param {Boolean} [noCache] Force to not load file from cache **/ - addAsset: function(filename, id) { + addAsset: function(filename, id, noCache) { if (!filename) throw 'addAsset: filename undefined'; if (id && this.paths[id]) return; if (this.paths[filename]) return; var realPath = this._getFilePath(filename); + if (id && noCache) realPath += '?' + Date.now(); if (id) this.paths[id] = realPath; this.paths[filename] = realPath; if (this.mediaQueue.indexOf(realPath) === -1) this.mediaQueue.push(realPath); From 7a33375747c95611bcb2d3b8b466303076b8c7c8 Mon Sep 17 00:00:00 2001 From: Eemeli Kelokorpi Date: Sat, 2 Mar 2019 10:07:08 +0200 Subject: [PATCH 13/18] Fixed TilingSprite rendering --- src/engine/renderer/tilingsprite.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/engine/renderer/tilingsprite.js b/src/engine/renderer/tilingsprite.js index a7d1f8f4..9da67f76 100644 --- a/src/engine/renderer/tilingsprite.js +++ b/src/engine/renderer/tilingsprite.js @@ -101,7 +101,9 @@ game.createClass('TilingSprite', 'Container', { } } - var texture = game.Texture.fromCanvas(canvas); + var texture = game.Texture.fromImage(canvas.toDataURL()); + texture.width = canvas.width; + texture.height = canvas.height; this.tw = texture.width; this.th = texture.height; game.TilingSprite.cache[this.texture.baseTexture._id] = texture; From f07a829aa9145824d455198a6e6f95e6f74ace6f Mon Sep 17 00:00:00 2001 From: Eemeli Kelokorpi Date: Wed, 27 Mar 2019 16:38:21 +0200 Subject: [PATCH 14/18] Added paused property to Timer --- src/engine/timer.js | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/engine/timer.js b/src/engine/timer.js index c1e91d4e..12b2d772 100644 --- a/src/engine/timer.js +++ b/src/engine/timer.js @@ -17,6 +17,11 @@ game.createClass('Timer', { @property {Function} callback **/ callback: null, + /** + Is timer paused. + @property {Boolean} paused + **/ + paused: false, /** Should timer repeat. @property {Boolean} repeat @@ -38,10 +43,10 @@ game.createClass('Timer', { **/ _last: 0, /** - @property {Number} _pause + @property {Number} _pauseTime @private **/ - _pause: 0, + _pauseTime: 0, init: function(time) { this._last = game.Timer.time; @@ -66,7 +71,7 @@ game.createClass('Timer', { delta: function() { var delta = game.Timer.time - this._last; this._last = game.Timer.time; - return this._pause ? 0 : delta; + return this.paused ? 0 : delta; }, /** @@ -74,7 +79,9 @@ game.createClass('Timer', { @method pause **/ pause: function() { - if (!this._pause) this._pause = game.Timer.time; + if (this.paused) return; + this._pauseTime = game.Timer.time; + this.paused = true; }, /** @@ -83,7 +90,8 @@ game.createClass('Timer', { **/ reset: function() { this._base = game.Timer.time; - this._pause = 0; + this._pauseTime = 0; + this.paused = false; }, /** @@ -91,10 +99,10 @@ game.createClass('Timer', { @method resume **/ resume: function() { - if (this._pause) { - this._base += game.Timer.time - this._pause; - this._pause = 0; - } + if (!this.paused) return; + this._base += game.Timer.time - this._pauseTime; + this._pauseTime = 0; + this.paused = false; }, /** @@ -114,7 +122,7 @@ game.createClass('Timer', { @return {Number} time **/ time: function() { - var time = this._base + this.target - (this._pause || game.Timer.time); + var time = this._base + this.target - (this._pauseTime || game.Timer.time); return time < 0 ? 0 : time; } }); From 601e5b0c7a0ac0086c7b21fd3abb738755397350 Mon Sep 17 00:00:00 2001 From: Eemeli Kelokorpi Date: Fri, 29 Mar 2019 23:08:00 +0200 Subject: [PATCH 15/18] Fixed TilingSprite rendering on hires --- src/engine/renderer/tilingsprite.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engine/renderer/tilingsprite.js b/src/engine/renderer/tilingsprite.js index 9da67f76..14ed3cdf 100644 --- a/src/engine/renderer/tilingsprite.js +++ b/src/engine/renderer/tilingsprite.js @@ -177,8 +177,8 @@ game.createClass('TilingSprite', 'Container', { var scaleX = this._worldTransform.a / this._cosCache; var scaleY = this._worldTransform.d / this._cosCache; - var tw = this.tw * game.scale; - var th = this.th * game.scale; + var tw = this.tw; + var th = this.th; var width = this.width / scaleX * game.scale; var height = this.height / scaleY * game.scale; var tileX = this.tilePosition.x * game.scale; From 01abaa266c369b9c517a1962d31099b3fdf08ad6 Mon Sep 17 00:00:00 2001 From: Eemeli Kelokorpi Date: Sat, 30 Mar 2019 12:13:20 +0200 Subject: [PATCH 16/18] Added support for frame names in addAnim method --- src/engine/renderer/animation.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/engine/renderer/animation.js b/src/engine/renderer/animation.js index 42189d0f..c045cca4 100644 --- a/src/engine/renderer/animation.js +++ b/src/engine/renderer/animation.js @@ -107,7 +107,7 @@ game.createClass('Animation', 'Sprite', { Add new animation. @method addAnim @param {String} name Name of animation. - @param {Array|Number|String} frames List of invidual frame indexes or start frame index or name that each frame starts with. + @param {Array|Number|String} frames List of invidual frame indexes | List of frame names | Start frame index | Name that each frame starts with. @param {Number|Object} [frameCount] Number of frames or animation properties. @param {Object} [props] Animation properties. @chainable @@ -127,7 +127,11 @@ game.createClass('Animation', 'Sprite', { } else if (frames.length) { for (var i = 0; i < frames.length; i++) { - textures[i] = this.textures[frames[i]]; + if (typeof frames[i] === 'number') textures[i] = this.textures[frames[i]]; + else if (typeof frames[i] === 'string') { + var index = this.textures.indexOf(frames[i]); + if (index !== -1) textures[i] = this.textures[index]; + } } } else if (typeof frames === 'number' && typeof frameCount === 'number') { From 9821c5656d27731ff07d84546f53f4f3fbb300f3 Mon Sep 17 00:00:00 2001 From: Eemeli Kelokorpi Date: Sat, 28 Mar 2020 08:31:19 +0200 Subject: [PATCH 17/18] Renamed _collide function to collide in Physics --- src/engine/physics.js | 62 +++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/src/engine/physics.js b/src/engine/physics.js index c646d723..4a942bd4 100644 --- a/src/engine/physics.js +++ b/src/engine/physics.js @@ -279,6 +279,37 @@ game.createClass('Physics', { this._addBodyCollision(body); }, + /** + Perform collision for body. + @method collide + @param {Body} body + **/ + collide: function(body) { + var g, i, b, group; + + for (g = 0; g < body.collideAgainst.length; g++) { + body._collides.length = 0; + group = this._collisionGroups[body.collideAgainst[g]]; + + if (!group) continue; + + for (i = group.length - 1; i >= 0; i--) { + if (!group) break; + b = group[i]; + if (body !== b) { + if (this.hitTest(body, b)) { + body._collides.push(b); + } + } + } + for (i = body._collides.length - 1; i >= 0; i--) { + if (this.hitResponse(body, body._collides[i])) { + body.afterCollide(body._collides[i]); + } + } + } + }, + /** Hit response a versus b. @method hitResponse @@ -388,37 +419,6 @@ game.createClass('Physics', { this._collisionGroups[body.collisionGroup].push(body); }, - /** - @method _collide - @param {Body} body - @private - **/ - _collide: function(body) { - var g, i, b, group; - - for (g = 0; g < body.collideAgainst.length; g++) { - body._collides.length = 0; - group = this._collisionGroups[body.collideAgainst[g]]; - - if (!group) continue; - - for (i = group.length - 1; i >= 0; i--) { - if (!group) break; - b = group[i]; - if (body !== b) { - if (this.hitTest(body, b)) { - body._collides.push(b); - } - } - } - for (i = body._collides.length - 1; i >= 0; i--) { - if (this.hitResponse(body, body._collides[i])) { - body.afterCollide(body._collides[i]); - } - } - } - }, - /** @method _removeBodyCollision @param {Body} body From 472d6e397c77f493e56bf3767af85a83adfb08a8 Mon Sep 17 00:00:00 2001 From: Eemeli Kelokorpi Date: Sat, 28 Mar 2020 13:49:14 +0200 Subject: [PATCH 18/18] Updated version number --- src/engine/core.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/core.js b/src/engine/core.js index 5dbc4973..6c1502a1 100644 --- a/src/engine/core.js +++ b/src/engine/core.js @@ -99,7 +99,7 @@ var game = { Engine version. @property {String} version **/ - version: '2.12.1dev', + version: '2.13.0', /** @property {Boolean} _booted @private