pixijs-scene-sprite

Use this skill when drawing images in PixiJS v8. Covers Sprite with anchor/tint/texture, AnimatedSprite for frame animation, NineSliceSprite for resizable UI panels, TilingSprite for scrolling/repeating backgrounds. Triggers on: Sprite, AnimatedSprite, NineSliceSprite, TilingSprite, Sprite.from, anc

By pixijs · 4,312 installs

npx skills add pixijs/pixijs-skills --skill pixijs-scene-sprite

Source repository · Upstream listing

PixiJS has three sprite classes for different drawing tasks. Sprite is the default image drawing leaf; NineSliceSprite is a resizable UI panel variant that preserves corner art; TilingSprite repeats a texture across an area. The AnimatedSprite subclass of Sprite cycles through texture frames for frame based animation. Assumes familiarity with pixijs scene core concepts . All sprite classes are leaf nodes; they cannot have children. Wrap multiple sprites in a Container to group them. Quick Start Position is set after construction because app.screen.width / 2 depends on the live renderer size. Literal positions can go directly in the options object via x / y (inherited from Container ). Related skills: pixijs scene core concepts (leaves, transforms), pixijs assets (texture loading), pixijs scene particle container (thousands of sprites), pixijs performance (spritesheets, batching). Variants Variant Use when Trade offs Reference Sprite Draw a single texture at a position Fixed size = texture size [references/sprite.md](references/sprite.md) AnimatedSprite Frame based animation from a texture array or spritesheet Pre rendered frames only; no tweening [references/animated sprite.md](references/animated sprite.md) NineSliceSprite Resizable UI panels, buttons, dialog frames Border width is fixed; center stretches [references/nineslice sprite.md](references/nineslice sprite.md) TilingSprite Scrolling backgrounds, parallax, repeating patterns Single texture repeated; tilePosition scrolls [references/tiling sprite.md](references/tiling sprite.md) AnimatedSprite is a subclass of Sprite ; all Sprite properties (anchor, tint, position) apply. Each variant's constructor options are documented in its sub reference file ( references/{variant}.md ). All variants also accept the Container options ( position , scale , tint , label , filters , zIndex , etc.) — see skills/pixijs scene core concepts/references/constructor options.md . When to use what "I want to draw a single image at a position" → Sprite . The default choice for 90% of 2D game and app content. "I want to animate a character through a series of frames" → AnimatedSprite . Load a spritesheet via Assets and pass sheet.animations['walk'] . See references/animated sprite.md . "I want a UI button/panel that resizes without stretching the borders" → NineSliceSprite . Set border widths, then set width / height . See references/nineslice sprite.md . "I want a scrolling repeating background" → TilingSprite . Animate tilePosition to scroll. See references/tiling sprite.md . "I want thousands of identical sprites" → Use ParticleContainer with Particle instances (see pixijs scene particle container ), not plain sprites. "I want to draw shapes or paths" → Use Graphics (see pixijs scene graphics ), not a sprite. Quick concepts Anchor vs pivot Sprite.anchor is normalized [0, 1] and shifts only the texture draw origin; no position offset. Container.pivot is pixel space and shifts both the transform origin and the visual position. For centering a sprite, always use anchor.set(0.5) . Loading before creating Sprite.from(id) only reads the Assets cache; it does not fetch. Always await Assets.load(...) first, or pass the returned Texture directly to new Sprite(texture) . Dynamic textures Once a texture is loaded, modifying its frame or swapping its source does not automatically notify sprites. Set texture.dynamic = true once, or call sprite['onViewUpdate']() manually after changes. Common Mistakes [HIGH] Using Texture.from(url) to load Wrong: Correct: Texture.from() only reads the cache in v8. Use Assets.load() first; its return value is the texture. [HIGH] Confusing anchor and pivot Wrong: Correct: anchor shifts only the draw origin. pivot shifts the transform origin AND the visual position, causing the sprite to move unexpectedly. [HIGH] Old NineSlicePlane name NineSlicePlane was renamed to NineSliceSprite in v8 and switched to an options object constructor: new NineSliceSprite({ texture, leftWidth, topHeight, rightWidth, bottomHeight }) . [MEDIUM] Adding children to a sprite Sprite , NineSliceSprite , and TilingSprite all set allowChildren = false . Wrap in a Container to group sprites with other content. API Reference [Sprite](https://pixijs.download/release/docs/scene.Sprite.html.md) [SpriteOptions](https://pixijs.download/release/docs/scene.SpriteOptions.html.md) [AnimatedSprite](https://pixijs.download/release/docs/scene.AnimatedSprite.html.md) [NineSliceSprite](https://pixijs.download/release/docs/scene.NineSliceSprite.html.md) [TilingSprite](https://pixijs.download/release/docs/scene.TilingSprite.html.md) [Texture](https://pixijs.download/release/docs/rendering.Texture.html.md)