ColorBand
The ColorBand class represents a transition from one color to another. It is used in a {@see Phaser.Display.ColorRamp}, and forms the basis of a {@see Phaser.GameObjects.Gradient}.
ColorBand can control the transition by setting a middle point, a color space for blending, and an interpolation style.
This class also records start and end points for use in a ramp. These indicate its position within the ramp.
Colors are handled unpremultiplied, so RGB values may be larger than alpha.
Constructor
new ColorBand([config])
Parameters
| name | type | optional | description |
|---|---|---|---|
| config | Phaser.Types.Display.ColorBandConfig | Yes | The configuration to use for the band. |
Scope: static
Source: src/display/ColorBand.js#L13
Since: 4.0.0
Public Members
colorEnd
colorEnd: Phaser.Display.Color
Description:
The color at the end of the color band.
Source: src/display/ColorBand.js#L60
Since: 4.0.0
colorSpace
colorSpace: number
Description:
The color space where interpolation should be done. This can be one of the following codes:
-
0: RGBA - channels are blended directly.
This can produce perceptually inaccurate results, as blending
in RGB space does not account for how humans perceive color.
-
1: HSVA_NEAREST - colors are blended in HSVA space,
better preserving saturation and lightness.
The hue is blended with the shortest angle, e.g. red and blue
blend via purple, not green.
-
2: HSVA_PLUS - as HSVA_NEAREST, but hue angle always increases.
-
3: HSVA_MINUS - as HSVA_NEAREST, but hue angle always decreases.
Source: src/display/ColorBand.js#L135
Since: 4.0.0
colorStart
colorStart: Phaser.Display.Color
Description:
The color at the start of the color band.
Source: src/display/ColorBand.js#L51
Since: 4.0.0
end
end: number
Description:
The end point of this band within a ColorRamp. This value should be normalized within the ramp, between 0 (ramp start) and 1 (ramp end).
Source: src/display/ColorBand.js#L98
Since: 4.0.0
interpolation
interpolation: number
Description:
The color interpolation. This can be one of the following codes:
-
0: LINEAR - a straight blend.
-
1: CURVED - color changes quickly at start and end,
flattening in the middle. Good for convex surfaces.
-
2: SINUSOIDAL - color changes quickly in the middle,
flattening at start and end. Good for smooth transitions.
-
3: CURVE_START - color changes quickly at the start,
flattening at the end.
-
4: CURVE_END - color changes quickly at the end,
flattening at the start.
Modes 2, 3, and 4 use the circular easing function directly. Mode 1 uses a related custom formula based on the unit circle.
Source: src/display/ColorBand.js#L111
Since: 4.0.0
isColorBand
isColorBand: boolean
Description:
Identifies this object as a ColorBand. This property is read-only and must not be modified.
Source: src/display/ColorBand.js#L39
Since: 4.0.0
middle
middle: number
Description:
The middle point of this band within a ColorRamp. This value should be normalized within the band, between 0 (band start) and 1 (band end). Middle point alters the shape of the color interpolation.
Mathematically, the gradient should be 0.5 at the middle. We use a gamma curve to adjust the gradient. Thus, 0.5 = middle^gamma. By the properties of logarithms, therefore, gamma = log base middle of 0.5.
Source: src/display/ColorBand.js#L80
Since: 4.0.0
start
start: number
Description:
The start point of this band within a ColorRamp. This value should be normalized within the ramp, between 0 (ramp start) and 1 (ramp end).
Source: src/display/ColorBand.js#L69
Since: 4.0.0
Public Methods
getColor
<instance> getColor(index)
Description:
Returns the blended color at a normalized position within this band. The middle point gamma curve, interpolation mode, and color space are all applied before blending between colorStart and colorEnd.
Parameters:
| name | type | optional | description |
|---|---|---|---|
| index | number | No | The normalized position within the band, where 0 is the band start and 1 is the band end. |
Returns: Phaser.Types.Display.ColorObject - The blended color at that position.
Source: src/display/ColorBand.js#L225
Since: 4.0.0
setColors
<instance> setColors([start], [end])
Description:
Set the colors of the band, from a variety of color formats.
-
A number is expected to be a 24 or 32 bit RGB or ARGB value.
-
A string is expected to be a hex code.
-
An array of numbers is expected to be RGB or RGBA in the range 0-1.
-
A Color object can be used.
Parameters:
| name | type | optional | default | description |
|---|---|---|---|---|
| start | number | string | Array.<number> | Phaser.Display.Color | Yes |
| end | number | string | Array.<number> | Phaser.Display.Color | Yes |
Returns: Phaser.Display.ColorBand - This ColorBand.
Source: src/display/ColorBand.js#L159
Since: 4.0.0