Hot on the heels of last months Phaser 3 release, Phaser 3.2.0 has just been released. Considering the short period that has elapsed, there are actually a fair number of new features, bug fixes and changes in this release.
New features in this release:
- The new Render Texture Game Object is now available. You can clear, fill and draw texture frames to it. The Render Texture itself can be displayed in-game with its own transform, or you can use it as a Bitmap Mask for another Game Object.
- Game.resize allows you to resize the game config, renderer and input system in one call.
- When Game.resize is called it causes all Scene.Systems to have their resize method called. This is turn emits a
resize event which your Scene can respond to. It will be sent the new width and height of the canvas as the only two parameters.
- InputManager.resize allows you to update the bounds def and input scale in one call.
- Game.Config.roundPixels property added to prevent sub-pixel interpolation during rendering of Game Objects in WebGL and Canvas.
- Load.plugin now accepts a class as an argument as well as a URL string (thanks @nkholski)
- Tween.complete will allow you to flag a tween as being complete, no matter what stage it is at. If an onComplete callback has been defined it will be invoked. You can set an optional delay before this happens (thanks @Jerenaux for the idea)
- The Headless render mode has been implemented. You can now set HEADLESS as the
renderType in the Game Config and it will run a special game step that skips rendering. It will still create a Canvas element, as lots of internal systems (like input) rely on it, but it will not draw anything to it. Fix #3256 (thanks @rgk)
- GameObject.setInteractive has a new boolean argument
dropZone which will allow you to set the object as being a drop zone right from the method.
- Sprites can now be drop zones and have other Game Objects dragged onto them as targets.
- The SceneManager has a new method:
remove which allows you to remove and destroy a Scene, freeing up the Scene key for use by future scenes and potentially clearing the Scene from active memory for gc.
- SceneManager.moveAbove will move a Scene to be directly above another Scene in the Scenes list. This is also exposed in the ScenePlugin.
- SceneManager.moveBelow will move a Scene to be directly below another Scene in the Scenes list. This is also exposed in the ScenePlugin.
- Quadratic Bezier Interpolation has been added to the Math.Interpolation functions (thanks @RiCoTeRoX)
- A new Quadratic Bezier Curve class has been added, expanding the available Curve types (thanks @RiCoTeRoX)
- Path.quadraticBezierTo allows you to add a Quadratic Bezier Curve into your Path.
- Loader.multiatlas now supports Texture Packers new JSON atlas format which exports one combined atlas for all image files. This is available if you use the new Phaser 3 Export from within Texture Packer (thanks @CodeAndWeb)
- Modified WebGLPipeline to make it easier to extend and easier to create custom rendering passes.
Be sure to check the full change log for full details on the bug fixes and updates in this release. If you are interested in learning more about Phaser 3, be sure to check out our Getting Started with Phaser 3 video.