npm phaser 4.0.0-rc.7
Phaser v4.0.0 Release Candidate 7

13 hours ago

New Features

  • Actions.AddEffectBloom allows you to quickly set up a bloom effect, using several filters, on a target Camera or GameObject.
  • Actions.AddEffectShine allows you to quickly set up a shine effect, using a new Gradient and filters, on a target Camera or GameObject.
  • Actions.AddMaskShape allows you to quickly add shapes to a target Camera or GameObject as Masks. Blurred edges and inversion are supported.
  • Actions.FitToRegion transforms an object to fit a region, such as the screen.
  • Display.Color: several helper methods now support modifying an existing Color object instead of creating a new one.
    • HSLToColor
    • HexStringToColor
    • IntegerToColor
    • ObjectToColor
    • RGBStringToColor
    • ValueToColor
  • Display.Color.Interpolate: an extra interpolation mode is available.
    • HSVWithHSV: new method to interpolate HSV values, in HSV space.
    • ColorWithColor has new parameters to allow it to operate in HSV space.
      • hsv flag sets it to operate in HSV space.
      • hsvSign flag can force it to interpolate hue either ascending or descending. Default behavior picks the shortest angle.
  • Display.ColorBand describes a transition between two colors. Intended for use in gradients.
  • Display.ColorRamp describes a range of colors using ColorBands. Intended for use in gradients.
  • GameObject#isDestroyed flag helps you avoid errors when accessing an object that might have removed expected properties during destruction.
  • GameObjects.Gradient is a new game object which renders gradients.
    • Gradient shapes include:
      • LINEAR
      • BILINEAR
      • RADIAL
      • CONIC_SYMMETRIC
      • CONIC_ASYMMETRIC
    • Gradient repeat modes include:
      • EXTEND: flat colors extend from start and end.
      • TRUNCATE: transparency extends from start and end.
      • SAWTOOTH: gradient starts over every time it completes.
      • TRIANGULAR: gradient reverses direction every time it gets to the end or start.
    • Optional Interleaved Gradient Noise based dithering to eliminate banding.
  • GameObjects.NineSlice has two new parameters: tileX, tileY, which allow non-corner regions of the NineSlice to tile instead of stretch. Some stretching is still applied to keep the tile count a whole number. Thanks to @skhoroshavin for this contribution!
  • GameObjects.Noise renders noise patterns.
    • Control value power curve.
    • Select from trigonometric or PCG algorithms.
    • Output grayscale, random color, or random normals.
  • Cellular noise objects: GameObjects.NoiseCell2D, NoiseCell3D and NoiseCell4D provide cellular/Worley/Voronoi noise.
    • Render cellular noise with sharp or smooth edges, or random flat colors.
    • Smoothly animate scroll through the XY plane or evolve the pattern through Z or ZW axes.
    • Add octaves of detail.
    • Supports rendering as a texture or normal map for use in other effects.
  • Simplex noise objects: GameObjects.NoiseSimplex2D and NoiseSimplex3D provide simplex noise.
    • Render simplex noise, the successor to Perlin Noise.
    • Use gradient flow to smoothly loop noise animation.
    • Add octaves of detail.
    • Apply turbulence and output shaping for a variety of effects.
    • Supports rendering as a texture or normal map for use in other effects.
  • Tint is overhauled.
    • tint and setTint() now purely affect the color settings.
      • Previously, both would silently deactivate fill mode.
    • tintFill and setTintFill() are removed.
    • New property tintMode and new method setTintMode() now set the tint fill mode.
    • Phaser.TintModes enumerates valid tint modes.
      • MULTIPLY
      • FILL
      • ADD
      • SCREEN
      • OVERLAY
      • HARD_LIGHT
    • FILL mode now treats partial alpha correctly.
    • BitmapText tinting now works correctly.
    • Conversion tip: foo.setTintFill(color) becomes foo.setTint(color).setTintMode(Phaser.TintModes.FILL).
  • CombineColorMatrix filter for remixing alpha and other channels between images.
  • GradientMap filter for recoloring images using a gradient and their own brightness.
  • Key filter for removing or isolating colors.
  • ImageLight filter for image-based lighting, a soft, highly realistic form of illumination.
  • PanoramaBlur filter for adjusting images for ImageLight.
  • NormalTools filter for manipulating normal maps.
  • Quantize filter for reducing colors and dithering.
  • Vignette filter returns from Phaser 3.
    • Now sets a configurable border color instead of erasing alpha.
    • Also supports limited blend modes.
  • Wipe filter returns from Phaser 3.
    • Now allows you to set the texture displayed in wiped-away regions.
    • Now provides helper functions to set directional reveal/wipe effects.
  • Math.Hash provides fast hashes of 1, 2, 3, or 4 dimensional input, using trigonometric or PCG methods.
  • Math.HashCell provides hashes of 1, 2, 3, or 4 dimensional input, using hash results in a Worley noise field. This produces a continuous but lumpy field.
  • Math.HashSimplex provides hashes of 1, 2, or 3 dimensional input, using a simplex noise implementation. This produces a continuous, smooth field.
  • Texture#setSource method for updating the source of a texture. Note that, while the source will update, derived values such as object sizes will not. It's advisable to switch between textures of identical size to avoid unexpected transforms.
  • Texture#setDataSource method already existed, but has been changed to be more useful like setSource.
  • TextureManager#addFlatColor method for creating a flat texture with custom color, alpha, width, and height. This is intended to act as a temporary stand-in for textures you might not have loaded yet.
  • TextureSource#updateSource method for switching sources directly.
  • New Phaser.Types.Textures.TextureSource and Phaser.Types.Textures.TextureSourceElement types to simplify the increasing number of sources for a texture.

Fixes

  • Fix TimeStep#stepLimitFPS to drop fewer frames, running much more smoothly at the target frame rate. Thanks to @flow and @Antriel for discussing the topic.
    • Documentation in FPSConfig#limit now clarifies that frame limits are only necessary when artificially slowing the game below the display refresh rate.
  • Fix Shape not respecting lights even though it had the lighting component.
  • Fix SpriteGPULayer creation time handling getting confused by 0.
  • Fix blend modes leaking onto siblings within a Container. Thanks to @saintflow47, @tickle-monster and @leemanhopeter for reporting this.
  • Fix texture offsets in ParseXMLBitmapFont. Thanks to @leemanhopeter.
  • Fix DynamicTexture turning black if it initially has a power-of-two resolution and is resized to a non-power-of-two resolution. Now any WebGL texture resize will wrap with REPEAT if it is power of two, or CLAMP_TO_EDGE if not. Thanks to @x-wk for reporting this.
  • Fix TextureManager.addUint8Array method, which got premultiplied alpha wrong and flipY wrong.

Don't miss a new phaser release

NewReleases is sending notifications on new releases.