game-object-components
Use this skill when working with Phaser 4 game object components and the mixin system. Covers Transform, Alpha, Tint, Origin, Depth, Flip, Mask, GetBounds, Lighting, and other shared component behaviors. Triggers on: component, mixin, transform, mask, bounds, lighting.
By phaserjs · 538 installs
npx skills add phaserjs/phaser --skill game-object-components
Source repository · Upstream listing
Phaser 4 Game Object Components Reference
Component mixins that provide shared behavior to all Game Objects: Alpha, BlendMode, Depth, Flip, GetBounds, Lighting, Mask, Origin, ScrollFactor, Size, Texture, TextureCrop, Tint, Transform, Visible, PathFollower, RenderNodes, RenderSteps, Filters, FilterList.
Quick Start
Core Concepts
The Mixin System
Phaser uses Phaser.Class with a Mixins array to compose Game Objects from reusable component objects. Each component is a plain JS object whose properties and methods are copied onto the class prototype. This is NOT prototypal inheritance it is property copying at class definition time.
Key Rules
1. Components are mixed in at class creation, not per instance.
2. Most setter methods return this for chaining: sprite.setAlpha(0.5).setDepth(10).setPosition(100, 200) .
3. Many properties use getters/setters internally (e.g., alpha , depth , visible , scale , rotation ). Setting alpha = 0 or scale = 0 clears render flags, skipping rendering.
4. renderFlags is a bitmask: bit 0 = visible, bit 1 = alpha, bit 2 = scale, bit 3 = texture. All bits must be set for the object to render.
5. Alpha vs AlphaSingle : Alpha supports per corner alpha (WebGL), AlphaSingle only supports a single global alpha. Containers use AlphaSingle .
6. Texture vs TextureCrop : TextureCrop extends Texture with setCrop() support. Sprites and Images use TextureCrop ; some objects use plain Texture .
7. Filters and RenderSteps are v4 only, WebGL only systems for post processing.
Complete Component Reference
Alpha
Provides per corner transparency. Used by Sprite, Image, Text, and most renderable objects.
Member Type Description
alpha number (get/set) Global alpha 0 1. Setting this also sets all four corners. Setting to 0 disables rendering. Default: 1
alphaTopLeft number (get/set) Top left corner alpha. WebGL only.
alphaTopRight number (get/set) Top right corner alpha. WebGL only.
alphaBottomLeft number (get/set) Bottom left corner alpha. WebGL only.
alphaBottomRight number (get/set) Bottom right corner alpha. WebGL only.
setAlpha(topLeft?, topRight?, bottomLeft?, bottomRight?) method Set alpha. One arg = uniform. Four args = per corner (WebGL). Returns this .
clearAlpha() method Resets alpha to 1. Returns this .
AlphaSingle
Simplified alpha with no per corner support. Used by Container.
Member Type Description
alpha number (get/set) Alpha 0 1. Default: 1
setAlpha(value?) method Set alpha. Returns this .
clearAlpha() method Resets alpha to 1. Returns this .
BlendMode
Controls how pixels are composited during rendering.
Member Type Description
blendMode number/string (get/set) Current blend mode. Accepts Phaser.BlendModes const, string, or integer.
setBlendMode(value) method Set the blend mode. Returns this .
WebGL blend modes: NORMAL , ADD , MULTIPLY , SCREEN , ERASE . Canvas supports additional browser dependent modes.
Depth
Controls rendering order (z index). Higher depth renders on top.
Member Type Description
depth number (get/set) Depth value. Setting it queues a depth sort. Default: 0
setDepth(value) method Set depth. Returns this .
setToTop() method Move to top of display list (no depth change). Returns this .
setToBack() method Move to back of display list. Returns this .
setAbove(gameObject) method Move above another Game Object in display list. Returns this .
setBelow(gameObject) method Move below another Game Object in display list. Returns this .
Flip
Visual mirroring without affecting physics bodies.
Member Type Description
flipX boolean Horizontal flip state. Default: false
flipY boolean Vertical flip state. Default: false
setFlipX(value) method Set horizontal flip. Returns this .
setFlipY(value) method Set vertical flip. Returns this .
setFlip(x, y) method Set both flip states. Returns this .
toggleFlipX() method Toggle horizontal flip. Returns this .
toggleFlipY() method Toggle vertical flip. Returns this .
resetFlip() method Reset both to false. Returns this .
GetBounds
Calculate positions and bounding rectangles regardless of origin.
Member Type Description
getCenter(output?, includeParent?) method Center coordinate. Returns Vector2Like .
getTopLeft(output?, includeParent?) method Top left coordinate. Returns Vector2Like .
getTopCenter(output?, includeParent?) method Top center coordinate. Returns Vector2Like .
getTopRight(output?, includeParent?) method Top right coordinate. Returns Vector2Like .
getLeftCenter(output?, includeParent?) method Left center coordinate. Returns Vector2Like .
getRightCenter(output?, includeParent?) method Right center coordinate. Returns Vector2Like .
getBottomLeft(output?, includeParent?) method Bottom left coordinate. Returns Vector2Like .
getBottomCenter(output?, includeParent?) method Bottom center coordinate. Returns Vector2Like .
getBottomRight(output?, includeParent?) method Bottom right coordinate. Returns Vector2Like .
getBounds(output?) method Full bounding rectangle. Returns Rectangle .
Set includeParent = true to factor in parent Container transforms.
Lighting (v4, WebGL only)
Enables light based rendering with the Phaser 4 lighting system.
Member Type Description
lighting boolean Whether to use lighting. Default: false
selfShadow object { enabled, penumbra, diffuseFlatThreshold } . Self shadow settings.
setLighting(enable) method Enable/disable lighting. Returns this .
setSelfShadow(enabled?, penumbra?, diffuseFlatThreshold?) method Configure self shadow. Pass null for enabled to use game config default. Returns this .
Mask (Canvas only in v4)
Geometry masking for Canvas renderer. In WebGL, use Filters.addMask() instead.
Member Type Description
mask GeometryMask The current mask, or null.
setMask(mask) method Apply a GeometryMask. Canvas only. In WebGL, logs a warning. Returns this .
clearMask(destroyMask?) method Remove the mask. Pass true to also destroy it. Returns this .
createGeometryMask(graphics?) method Create a GeometryMask from a Graphics/Shape object. Returns GeometryMask .
Origin
Controls the anchor point for position, rotation, and scale. Normalized 0 1.
Member Type Description
originX number Horizontal origin. Default: 0.5 (center)
originY number Vertical origin. Default: 0.5 (center)
displayOriginX number (get/set) Origin in pixels. Setting recalculates originX .
displayOriginY number (get/set) Origin in pixels. Setting recalculates originY .
setOrigin(x?, y?) method Set origin (normalized). y defaults to x . Default: 0.5 . Returns this .
setOriginFromFrame() method Set origin from texture Frame pivot. Returns this .
setDisplayOrigin(x?, y?) method Set origin in pixels. Returns this .
updateDisplayOrigin() method Recalculate display origin cache. Returns this .
ScrollFactor
Controls how camera scrolling affects the object's rendered position.
Member Type Description
scrollFactorX number Horizontal scroll factor. Default: 1
scrollFactorY number Vertical scroll factor. Default: 1
setScrollFactor(x, y?) method Set scroll factor. y defaults to x . Returns this .
Key values: 0 = fixed to camera (HUD element), 1 = moves with camera, 0.5 = parallax half speed.
Size
Manages native and display dimensions.
Member Type Description
width number Native (un scaled) width.
height number Native (un scaled) height.
displayWidth number (get/set) Scaled width. Setting adjusts scaleX .
displayHeight number (get/set) Scaled height. Setting adjusts scaleY .
setSize(width, height) method Set native size. Does NOT affect rendered size. Returns this .
setDisplaySize(width, height) method Set rendered size (adjusts scale). Returns this .
setSizeToFrame(frame?) method Set size from a texture Frame. Returns this .
Texture
Gets and sets the texture and frame for rendering.
Member Type Description
texture Phaser.Textures.Texture The current Texture.
frame Phaser.Textures.Frame The current Frame.
setTexture(key, frame?, updateSize?, updateOrigin?) method Set texture by key. Returns this .
setFrame(frame, updateSize?, updateOrigin?) method Set frame by name, index, or Frame instance. Updates size and origin by default. Returns this .
TextureCrop
Extends Texture with cropping support. Used by Sprite and Image.
Member Type Description
texture Phaser.Textures.Texture The current Texture.
frame Phaser.Textures.Frame The current Frame.
isCropped boolean Whether cropping is active.
setTexture(key, frame?) method Set texture by key. Returns this .
setFrame(frame, updateSize?, updateOrigin?) method Set frame. Also updates crop UVs if cropped. Returns this .
setCrop(x?, y?, width?, height?) method Set crop rectangle. Pass no args to clear. Accepts a Rectangle as first arg. Returns this .
Tint (WebGL only)
Applies color tinting to the texture via per corner vertex colors.
Member Type Description
tint number (get/set) Uniform tint color (reads tintTopLeft ). Default: 0xffffff
tintTopLeft number Top left vertex tint. Default: 0xffffff
tintTopRight number Top right vertex tint. Default: 0xffffff
tintBottomLeft number Bottom left vertex tint. Default: 0xffffff
tintBottomRight number Bottom right vertex tint. Default: 0xffffff
tintMode number Tint blend mode. Default: Phaser.TintModes.MULTIPLY
isTinted boolean (readonly) True if any tint or mode is set.
setTint(topLeft?, topRight?, bottomLeft?, bottomRight?) method Set tint colors. One arg = uniform. Returns this .
setTintMode(mode) method Set tint mode (v4). Modes: MULTIPLY , FILL , ADD , SCREEN , OVERLAY , HARD LIGHT . Returns this .
clearTint() method Reset to white + MULTIPLY. Returns this .
v4 change : setTintFill() is removed. Use setTint(color).setTintMode(Phaser.TintModes.FILL) instead.
Transform
Position, scale, rotation, and coordinate transforms.
Member Type Description
x number X position. Default: 0
y number Y position. Default: 0
z number Z position (NOT rendering order; use depth ). Default: 0
w number W position. Default: 0
scale number (get/set) Uniform scale. Get returns average of scaleX and scaleY.
scaleX number (get/set) Horizontal scale. Default: 1
scaleY number (get/set) Vertical scale. Default: 1
angle number (get/set) Rotation in degrees (clockwise, 0 = right).
rotation number (get/set) Rotation in radians.
setPosition(x?, y?, z?, w?) method Set position. y defaults to x . Returns this .
copyPosition(source) method Copy x/y/z/w from a Vector like object. Returns this .
setRandomPosition(x?, y?, width?, height?) method Randomize position within area. Returns this .
setRotation(radians?) method Set rotation in radians. Returns this .
setAngle(degrees?) method Set rotation in degrees. Returns this .
setScale(x?, y?) method Set scale. y defaults to x . Returns this .
setX(value