New Features
Added resource cache busting (#280)
Added HTML5 Gamepad API support. (#15)
Added Browserify support (#312, thanks @finnp)
Added ‘blur’ and ‘visible’ events to detect when the browser window a game is in has focus (#385)
Added Z-index support to Actors, allowing for specific ordered drawing. (#356)
Added unlocked drawing for UI elements (#354)
Added Promise.join()
to return a new promise when promises passed to it have been resolved (#341, #340)
Added ability to skip a frame in an animation (#313)
You can now remove effects from IDrawable
objects. (#303)
Added a generic Resource
type to allow for XHR loading (#297)
Added gray Color
constants (#209)
Updates
Renamedengine.addChild()
to engine.add()
. (#288)
Renamed setSpriteTransformationPoint()
to setAnchor()
(#269)
Renamed TopCamera
to LockedCamera
(#184)
Renamed Actor.pipeline
to Actor.traits
(#351)
Actor anchoring now uses center origin by default. (#299)
Actor updates (movement, collision, etc.) now use a pipeline. (#330)
Organized classes, files, and project structure (#182, #347)
Improvements to collision detection (#345, #332)
Improved documentation (#392, #412, #362, #415, #426)
Loop optimizations for performance improvements (#296)
Updated to TypeScript 1.4 (#393)
Improved pointer event handling. You no longer have to capture touch and mouse events separately. (#334)
Improved Point
and Vector
methods and rotation (#323, #302)
Color
is now treated as a vector to allow for changes. (#298)
Cleaned up event type consistency (#273)
There is now a default instance of a Camera
. (#270)
TSLint now used to enforce code quality (#394, #79)
Bug Fixes
A Sprite’s dimensions weren’t validated against the size of its texture. (#318)
Improved sprite drawing performance issues (#316)
Actors were sometimes throwing duplicate collision events. (#284)
Actors were not setting their initial opacity correctly (#307, thanks @MrAlexLau)
Particle emitters couldn’t emit less than 60 particles per second (#301)
Fixed issue with TileMap collisions (#286)
Animations with duplicate frames weren’t being created correctly (#283)
Separated drawing and collision logic for CollisionMaps (now TileMap) (#285)
Errors in promises were being swallowed if no error callback was supplied. (#337)
A null promise was being returned if no loader was given to Engine.start()
. (#335)
Changed default collisionType to ‘PreventCollision’ (#324)
Color didn’t handle alpha = 0 correctly. (#257)
Blink action usage was confusing. (#279)
Couldn’t use the width
and height
properties of a Texture after it loaded. (#355)
Using on(‘pointerdown’)
would not automatically enable pointer capturing. (#398)
Unsubscribing from an event sometimes removed other event handlers. (#366)
Actor.setCenterDrawing()
was hard-coded to true. (#375)
Console was undefined in IE9. (#378)
Pointers were not handling mobile Safari touch events. (#382)
Fixed debug mode drawing (#274)
Flipping a sprite didn’t factor in scaling (#401)
Sound continued to play when the game was paused (#383)
UIActor.kill()
didn’t remove the actor (#373)
Passing an empty array to ex.Promise.join
resulted in unresolved promises (#365)
MouseUp / TouchEnd events weren’t capture correctly if outside of canvas. (#374)
Clearing actions from an empty action queue caused problems (#409)
Scene.onActivate()
was being called before Scene.onInitialize()
. (#418)
New z-indexing wasn’t cleaning up after itself. (#433)
Fixed issue with world / screen coordinates in UIActors (#371)
Fade action didn’t work for text. (#261)
Fade action didn’t work for plain-color actors. (#256)
Collision events weren’t being published for both collision participants. (#254)
The loading bar was misrepresenting the time taken to decode audio files. (#106)
actor.getCenter()
wasn’t returning the correct value. (#438)
Cameras were on the engine instead of the scene, resulting in scene transition problems. (#277)
Actors with sprites larger than the actor would disappear prematurely from the screen. (#287)
Derived classes can now use offscreen culling (#294)
Fixed issue with TileMap culling (#444)