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.
- Skill ID
- phaserjs/phaser/game-object-components
- Publisher
- phaserjs
- Repository
- phaser
- Installs
- 0
- Files
- 2
- Synced
- Sep 23, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
phaserjs/phaser/game-object-componentsInstalls these files- SKILL.md
- references/REFERENCE.md
What this skill tells the agent
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
// Every Game Object gets its component methods via mixins.
// Just call them directly on any game object:
const sprite = this.add.sprite(400, 300, 'hero');
sprite.setAlpha(0.5); // Alpha
sprite.setBlendMode(Phaser.BlendModes.ADD); // BlendMode
sprite.setDepth(10); // Depth
sprite.setFlip(true, false); // Flip
sprite.setOrigin(0, 0); // Origin
sprite.setScrollFactor(0); // ScrollFactor (HUD)
sprite.setDisplaySize(64, 64); // Size
sprite.setTexture('hero', 'walk-1'); // Texture
sprite.setTint(0xff0000); // Tint
sprite.setPosition(100, 200); // Transform
sprite.setVisible(false); // Visible
sprite.setScale(2); // Transform
sprite.setAngle(45); // Transform
// Per-corner alpha (WebGL only)
sprite.setAlpha(1, 0.5, 0.5, 1);
// Crop a texture region
sprite.setCrop(0, 0, 32, 32);
// Enable WebGL filters (post-processing)
sprite.enableFilters();
sprite.filters.internal.addBlur(1, 2, 2, 1);
// Lighting (WebGL only, v4 feature)
sprite.setLighting(true);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.
// How Phaser defines Sprite internally:
var Sprite = new Class({
Extends: GameObject,
Mixins: [
Components.Alpha,
Components.BlendMode,
Components.Depth,
Components.Flip,
Components.GetBounds,
Components.Lighting,
Components.Mask,
Components.Origin,
Components.RenderNodes,
Components.ScrollFactor,
Components.Size,
Components.TextureCrop,
Components.Tint,
Components.Transform,
Components.Visible,
SpriteRender
],
initialize: function Sprite (scene, x, y, texture, frame) { /* ... */ }
});Key Rules
- Components are mixed in at class creation, not per-instance.
- Most setter methods return
thisfor chaining:sprite.setAlpha(0.5).setDepth(10).setPosition(100, 200). - Many properties use getters/setters internally (e.g.,
alpha,depth,visible,scale,rotation). Settingalpha = 0orscale = 0clears render flags, skipping rendering. renderFlagsis a bitmask: bit 0 = visible, bit 1 = alpha, bit 2 = scale, bit 3 = texture. All bits must be set for the object to render.- Alpha vs AlphaSingle:
Alphasupports per-corner alpha (WebGL),AlphaSingleonly supports a single global alpha. Containers useAlphaSingle. - Texture vs TextureCrop:
TextureCropextendsTexturewithsetCrop()support. Sprites and Images useTextureCrop; some objects use plainTexture. - 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. |
More from phaserjs
Use this skill in a project
Open any RiverX project, search the Skills panel for phaserjs/phaser/game-object-components, and install it in one click.
