agentic-coding-demo/demo-02/old-plan.md
2026-01-15 18:24:51 +01:00

1.7 KiB

Particle Burst Feature Plan

Overview

Add a click interaction that creates a radial burst of particles and shifts the color palette.

Implementation Details

1. Global State Addition

Add a hueOffset variable to track the current color shift:

let hueOffset = 0; // Shifts the particle color palette

2. Click Event Handler

Add to the script (after the mousemove listener):

canvas.addEventListener('click', (e) => {
    const clickX = e.clientX;
    const clickY = e.clientY;

    // Shift hue for variety
    hueOffset += 15 + Math.random() * 15; // Shift by 15-30 degrees

    // Create burst of particles
    const burstCount = 40;
    for (let i = 0; i < burstCount; i++) {
        particles.push(new BurstParticle(clickX, clickY, hueOffset));
    }
});

3. BurstParticle Class (or extend Particle)

Create particles with radial velocity:

  • Position: click coordinates
  • Angle: random 0 to 2π
  • Speed: random range (e.g., 2-8) for varying distances
  • Size: slightly larger than normal particles (6-12px)
  • Decay: slightly faster for quick burst effect

4. Particle Constructor Update

Modify the Particle constructor to accept an optional hue offset:

constructor(x, y, hueShift = 0) {
    // ... existing code ...
    const hue = Math.random() * 60 + 180 + hueShift; // Blue-cyan + shift
    this.color = `hsla(${hue}, 100%, 70%,`;
}

File Changes

  • index.html: Add click listener, hueOffset variable, and optional hueShift parameter to Particle

Visual Effect

  • Each click creates an explosion of blue-cyan particles at the cursor
  • Subsequent clicks shift the color palette gradually (e.g., cyan → green → yellow)
  • Trail effect continues to work with the new particles