Change Log

New Features

Containers are now fully available! We have removed the beta warning and fixed the way in which they work with Cameras, input and scroll factors. They are also fully documented, so please see their docs and examples for use.

Group.getLast will return the last member in the Group matching the search criteria.

Group.getFirstNth will return the nth member in the Group, scanning from top to bottom, that matches the search criteria.

Group.getLastNth will return the nth member in the Group, scanning in reverse, that matches the search criteria.

Group.remove has a new optional argument destroyChild that will call destroy on the child after removing it.

Group.clear has a new optional argument destroyChild that will call destroy on all children in the Group after removing them.

Updates

Impact Physics Game Objects have changed setLite to setLiteCollision.

Impact Physics Game Objects have changed setPassive to setPassiveCollision.

Impact Physics Game Objects have changed setFixed to setFixedCollision.

Impact Physics Game Objects have changed setActive to setActiveCollision, previously the setActive collision method was overwriting the Game Objects setActive method, hence the renaming.

The modifications made to the RTree class in Phaser 3.4.0 to avoid CSP policy violations caused a significant performance hit once a substantial number of bodies were involved. We have recoded how the class deals with its accessor formats and returned to 3.3 level performance while still maintaining CSP policy adherence. Fix #3594 (thanks @16patsle)

The Retro Font namespace has changed to Phaser.GameObjects.RetroFont. Previously, you would access the parser and constants via BitmapText, i.e.: Phaser.GameObjects.BitmapText.ParseRetroFont.TEXT_SET6. This has now changed to its own namespace, so the same line would be: Phaser.GameObjects.RetroFont.TEXT_SET6. The Parser is available via Phaser.GameObjects.RetroFont.Parse. This keeps things cleaner and also unbinds RetroFont from BitmapText, allowing you to cleanly exclude it from your build should you wish. All examples have been updated to reflect this.

If using the removeFromScene option in Group.remove or Group.clear it will remove the child/ren from the Scene to which they belong, not the Scene the Group belongs to.

Bug Fixes

Fixed a bug that caused data to not be passed to another Scene if you used a transition to start it. Fix #3586 (thanks @willywu)

Group.getHandler would return any member of the Group, regardless of the state, causing pools to remain fixed at once member. Fix #3592 (thanks @samme)

Examples, Documentation and TypeScript

My thanks to the following for helping with the Phaser 3 Examples, Docs and TypeScript definitions, either by reporting errors, fixing them or helping author the docs: