Added
ex.Vector.magnitude
alias that callsex.Vector.distance()
to get magnitude of Vector (#663)- Added new
ex.Line
utilities (#662):ex.Line.slope
for the raw slope (m) valueex.Line.intercept
for the Y intercept (b) valueex.Line.findPoint(x?, y?)
to find a point given an X or a Y valueex.Line.hasPoint(x, y, threshold)
to determine if given point lies on the line
- Added
Vector.One
andVector.Half
constants (#649, thanks @FerociousQuasar) - Added
Vector.isValid
to check for null, undefined, Infinity, or NaN vectors method as part of (#665) - Added
ex.Promise.resolve
andex.Promise.reject
static methods (#501) - PhantomJS based testing infrastructure to accurately test browser features such as image diffs on canvas drawing (#521)
- Added some basic debug stat collection to Excalibur (#97):
- Added
ex.Engine.stats
to hold frame statistic information - Added
ex.Engine.debug
to hold debug flags and current frame stats - Added
preframe
andpostframe
events toEngine
as hooks - Added ex.Physics statistics to the Excalibur statistics collection
- Added
- Added new fast body collision detection to Excalibur to prevent fast moving objects from tunneling through other objects (#665)
- Added DynamicTree raycast to query the scene for bounds that intersect a ray
- Added fast BoundingBox raycast test
Changed
- Internal physics names refactored to be more readable and to use names more in line with game engine terminology (explicit broadphase and narrowphase called out)
Deprecated
ex.Promise.wrap
(#501)
Fixed
- Fix
Actor.oldPos
andActor.oldVel
values on update (#666) - Fix
Label.getTextWidth
returns incorrect result (#679) - Fix semi-transparent PNGs appear garbled (#687, thanks @hogart)
- Fix incorrect code coverage metrics, previously our test process was reporting higher than actual code coverage (#521)
- Fix
Actor.getBounds()
andActor.getRelativeBounds()
to return accurate bounding boxes based on the scale and rotation of actors. (#692)