Scaling Sprite - Pixijs Typing CST Test
Loading…
Scaling Sprite — Pixijs Code
Animates sprite scaling up and down.
# pixijs/demo/scale_sprite.html
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pixi.js/7.2.4/pixi.min.js"></script>
</head>
<body>
<script>
const app = new PIXI.Application({ width: 800, height: 600 });
document.body.appendChild(app.view);
const sprite = PIXI.Sprite.from('https://pixijs.io/examples/examples/assets/bunny.png');
sprite.anchor.set(0.5);
sprite.x = app.screen.width / 2;
sprite.y = app.screen.height / 2;
app.stage.addChild(sprite);
let scaleUp = true;
app.ticker.add(() => {
if(scaleUp) sprite.scale.x += 0.01; else sprite.scale.x -= 0.01;
if(sprite.scale.x > 2) scaleUp = false;
if(sprite.scale.x < 1) scaleUp = true;
});
</script>
</body>
</html>Pixijs Language Guide
PixiJS is a fast, 2D rendering JavaScript library that leverages WebGL (with canvas fallback) to create interactive graphics, games, and applications for the web. It offers a high-performance API for sprites, textures, filters, and animations.
Primary Use Cases
- ▸2D game development for web and mobile
- ▸Interactive web applications and dashboards
- ▸Animated banners and marketing content
- ▸Data visualization with GPU acceleration
- ▸Integration with other JS animation libraries (GSAP, Anime.js)
Notable Features
- ▸GPU-accelerated rendering via WebGL
- ▸Automatic Canvas fallback for legacy devices
- ▸Efficient sprite batching and texture management
- ▸Filter and shader support
- ▸Animation ticker and interaction handling
Origin & Creator
PixiJS was created by Mat Groves in 2013 and is maintained by the PixiJS team and community contributors.
Industrial Note
PixiJS is widely used in 2D web games, interactive experiences, data visualizations, advertising banners, HTML5 games, and creative web apps requiring fast, GPU-accelerated rendering.
Quick Explain
- ▸PixiJS abstracts WebGL rendering into an easy-to-use 2D graphics framework.
- ▸Supports sprites, textures, graphics, text, and filters.
- ▸Provides animation and ticker systems for smooth updates.
- ▸Runs efficiently across devices and browsers with automatic WebGL fallback to Canvas.
- ▸Integrates with other libraries like GSAP for advanced animations.
Core Features
- ▸Sprites and textures
- ▸Graphics primitives (lines, shapes, polygons)
- ▸Text and bitmap fonts
- ▸Filters and custom shaders
- ▸Interaction manager (mouse/touch events)
Learning Path
- ▸Understand WebGL basics and canvas
- ▸Learn PixiJS Application, Containers, and Sprites
- ▸Animate using Ticker and GSAP
- ▸Apply filters and shaders
- ▸Build interactive 2D games or creative experiences
Practical Examples
- ▸Display and animate a sprite
- ▸Create particle effects
- ▸Apply color or blur filters
- ▸Interactive buttons with mouse/touch events
- ▸Sprite sheet-based character animation
Comparisons
- ▸PixiJS vs Canvas API: easier and faster for complex scenes
- ▸PixiJS vs Phaser: PixiJS focuses on rendering; Phaser adds game engine features
- ▸PixiJS vs Three.js: 2D vs 3D rendering
- ▸PixiJS vs GSAP: PixiJS renders, GSAP animates properties
- ▸PixiJS vs Konva.js: PixiJS more performance-oriented and GPU-accelerated
Strengths
- ▸High-performance rendering for 2D content
- ▸Cross-browser and mobile friendly
- ▸Lightweight and extensible
- ▸Strong community and active development
- ▸Seamless integration with animation libraries like GSAP
Limitations
- ▸2D only - no native 3D support
- ▸Complex scenes may require manual optimization
- ▸Learning curve for custom shaders and filters
- ▸No built-in physics engine
- ▸Limited DOM integration (requires canvas/WebGL context)
When NOT to Use
- ▸3D rendering -> use Three.js or Babylon.js
- ▸Simple CSS transitions -> CSS may suffice
- ▸Legacy browsers without canvas/WebGL support
- ▸Pure HTML/UI animations
- ▸Server-side rendering without canvas requirement
Cheat Sheet
- ▸const app = new PIXI.Application({ width: 800, height: 600 });
- ▸document.body.appendChild(app.view);
- ▸const sprite = PIXI.Sprite.from('image.png');
- ▸app.stage.addChild(sprite);
- ▸app.ticker.add(() => { sprite.x += 1; });
FAQ
- ▸Is PixiJS free? -> Yes, MIT licensed.
- ▸Does it work on mobile? -> Yes, fully supported.
- ▸Can PixiJS use WebGL? -> Yes, with automatic Canvas fallback.
- ▸Do I need to know WebGL? -> Helpful but not required.
- ▸Is PixiJS suitable for games? -> Excellent for 2D web games.
30-Day Skill Plan
- ▸Week 1: Sprites and Containers
- ▸Week 2: Text, Graphics, and Interaction
- ▸Week 3: Ticker and Animation basics
- ▸Week 4: Filters, shaders, and particles
- ▸Week 5: Full 2D game/application project
Final Summary
- ▸PixiJS is a high-performance 2D rendering engine.
- ▸GPU-accelerated, cross-browser, and flexible.
- ▸Supports sprites, graphics, text, and filters.
- ▸Ideal for 2D games, interactive apps, and creative coding.
- ▸Works seamlessly with animation libraries like GSAP.
Project Structure
- ▸index.html - main HTML file with canvas
- ▸main.js - PixiJS application code
- ▸assets/ - textures, images, spritesheets
- ▸modules/ - reusable graphics/animation code
- ▸styles/ - optional CSS for layout
Monetization
- ▸HTML5 games
- ▸Interactive ads and banners
- ▸Marketing sites with GPU animations
- ▸2D visualizations for clients
- ▸Creative coding workshops and services
Productivity Tips
- ▸Reuse containers and sprites
- ▸Leverage texture atlases
- ▸Use GSAP for tweening rather than manual ticker updates
- ▸Optimize filters and shaders
- ▸Keep project modular for maintainability
Basic Concepts
- ▸Application - manages renderer, stage, and ticker
- ▸Container - groups display objects
- ▸Sprite - textured images or animations
- ▸Graphics - vector shapes, lines, polygons
- ▸Filters - apply visual effects to objects