phaser
Version:
A fast, free and fun HTML5 Game Framework for Desktop and Mobile web browsers from the team at Phaser Studio Inc.
42 lines (30 loc) • 2.71 kB
Markdown
# Version 4.0 - Release Candidate 3
This release candidate introduces better pixel art controls, and fixes performance issues related to pixel art options.
Updates since RC2:
## New Features
- `GameObject#vertexRoundMode` added to control vertex pixel rounding on a per-object basis.
- Options include:
- `"off"`: Never round vertex positions.
- `"safe"`: Round vertex positions if the object is "safe": it is rendering with a transform matrix which only affects the position, not other properties such as scale or rotation.
- `"safeAuto"` (default): Like "safe", but only if rendering through a camera where `roundPixels` is enabled.
- `"full"`: Always round vertex positions. This can cause sprites to wobble if their vertices are not safely aligned with the pixel resolution, e.g. during rotations. This is good for a touch of PlayStation 1 style jank.
- `"fullAuto"`: Like "full", but only if rendering through a camera where `roundPixels` is enabled.
- `GameObject#willRoundVertices(camera, onlyTranslated)` returns whether vertices should be rounded. In the unlikely event that you need to control vertex rounding even more precisely, you are intended to override this method.
- `Blocky` filter added. This is similar to Pixelate, but it picks just a single color from the image, preserving the palette of pixel art. You can also configure the pixel width and height, and offset. This is a good option for pixelating a retro game at high resolution, setting up for additional filters such as CRT emulation.
## Changes
- WebGL2 canvases are now compatible with the WebGL renderer.
- Optimize multi-texture shader.
- Shader branching pattern changed to hopefully be more optimal on a wider range of devices.
- Shader will not request the maximum number of textures if it doesn't need them, improving performance on many mobile devices.
- Shader no longer performs vertex rounding. This will prevent many situations where a batch was broken up, degrading performance.
## Fixes
- `WebGLSnapshot` and snapshot functions based on it now return the correct pixel, instead of the one above it (or nothing if they're at the top of the image).
- `ArcadePhysics#closest()` and `#furthest()` are properly defined (thanks @samme).
- `GamepadPlugin.stopListeners` and `GamepadPlugin.disconnectAll` now have guards around them so they won't try to invoke functions on potentially undefined gamepads (thanks @cryonautlex)
- Arcade Physics OverlapCirc() and OverlapRect() error when useTree is false. Fix #7112 (thanks @samme)
## Documentation / TypeScript Enhancements
Thanks to the following people:
@ospira
@samme
@OuttaBounds
@raaaahman