Change Log

New Features

Line.reflect will calculate the reflected, or outgoing angle of two lines. This can be used for Body vs. Line collision responses and rebounds.

Line.normalAngle gets the angle of the line normal in radians.

Line.normalX and Line.normalY contain the x and y components of the left-hand normal of the line.

Line.fromAngle will sets this line to start at the given x and y coordinates and for the segment to extend at angle for the given length.

BitmapData.drawGroup draws the immediate children of a Phaser.Group to a BitmapData. Children are only drawn if they have their exists property set to true. The children will be drawn at their x and y world space coordinates. When drawing it will take into account the child's rotation, scale and alpha values. No iteration takes place. Groups nested inside other Groups will not be iterated through.

Phaser.Graphics.drawCircle now overrides PIXI.drawCircle which means the docs are now correct re: diameter not radius (thanks @ethankaminski #1454)

Device.webAudio check inversed to avoid throwing a warning in Chrome.

Mouse.mouseMoveCallback is flagged as deprecated.

Remove tw and th init from TilemapLayer (thanks @nextht #1474)

Particles.Arcade.Emitter.makeParticles now checks the given quantity value against Emitter.maxParticles. If quantity is more than maxParticles then the maxParticles value is reset to the new quantity given (as this is how most devs seem to use it).

Particles.Arcade.Emitter.emitParticle now returns a boolean depending if a particle was emitted or not.

Particles.Arcade.Emitter.update only updates _counter if a particle was successfully emitted.

Phaser.Point.angleSq removed. It didn't work so any code relying on it would be broken, and it's unclear what it was meant for (thanks @nextht #1396)

BitmapData.copy tx parameter if null and source is a Display Object, it will default to source.x.

BitmapData.copy ty parameter if null and source is a Display Object, it will default to source.y.

Simplified call to updateTransform. This is the unified and verified fix for #1424 #1479 #1490 #1502 and solves issues with physics tunneling and visual glitches under the new time step code.

Tween.delay, Tween.repeat and Tween.yoyo will no longer throw an error if called before a TweenData object has been created (via Tween.to or Tween.from) (thanks @SomMeri #1419)

The click trampoline added for IE prevented Chrome for Android from being
able to launch Full Screen mode with the default parameters for
ScaleManger#startFullScreen (the desktop version of Chrome was not
affected.). This is now fixed and additional compatibility settings (clickTrampoline) that can be used to configure when such is used. By default the 'when-not-mouse' mode is only enabled for Desktop browsers, where the
primary input is ubiquitously a mouse. There are no known breaking compatibility changes - the Full Screen should be initiatable in Chrome for Android as it was in 2.1.x. The default Android browser does not support Full Screen (thanks @pnstickne)

TilemapParser now checks for image collections, avoiding crashes. These would arise with maps exported from the new release of Tiled (thanks @paul-reilly #1440)

Group.replace could still access newChild.parent after it was set to undefined. This unifies the approach (thanks @pnstickne #1410 #1417)

P2.postBroadphaserHandler updated to avoid skipping final 2 pairs.

The P2 World constructor wouldn't let you use your own config unless you specified both the gravity and broadphase. Now allows one or both (thanks @englercj #1412)

The RandomDataGenerator could be seeded with an array of values. However if the array contained a zero it would stop seeding from that point (thanks @jpcloud @pnstickne #1456)

Added extra checks to Sound.play to stop it throwing DOM Exception Error 11 if the sound.readyState wasn't set or the sound was invalid. Also wrapped stop()`` call in atry catch`.

Time.reset would incorrectly reset the _started property, now maps it to Time.time (thanks @XekeDeath #1467)