Skip to content

v1.0.2

Choose a tag to compare

@PiotrPrus PiotrPrus released this 17 Apr 12:15
· 51 commits to main since this release

What's New

Configurable directional gravity for particles

Both ParticlesEmitter and CanvasParticleEmitter now support directional gravity via two new parameters:

  • gravityStrength — strength of gravitational force (Dp/s²). 0 = no gravity.
  • gravityAngle — direction of gravity in degrees. 0 = down, 180 = up, -90 = right, 90 = left.

This enables effects like falling confetti, rain, rising bubbles, wind, and diagonal forces.

CanvasParticleEmitter — physics-based motion

The canvas emitter now uses real physics (velocity + acceleration) instead of tween interpolation. Particles follow natural arcs when gravity is applied.

Sample app improvements

  • New Gravity sample with on/off toggle
  • New Gravity Point sample with draggable attractor and force slider
  • Screens extracted to separate files under screen/ package
  • Fixed edge-to-edge status bar padding

Breaking Changes

  • EmitterConfig.gravityMultiplier → replaced by gravityStrength: Float + gravityAngle: Int
  • CanvasEmitterConfig.flyDistancesDp → renamed to initialForce: IntRange
  • CanvasEmitterConfig.translateEasing → removed (physics replaces tween for position)

Migration from 1.0.1

// Before (1.0.1)
EmitterConfig(gravityMultiplier = 0.5f, ...)

// After (1.0.2)
EmitterConfig(gravityStrength = 0.5f, gravityAngle = 0, ...)
// Before (1.0.1)
CanvasEmitterConfig(flyDistancesDp = IntRange(40, 100), translateEasing = FastOutSlowInEasing, ...)

// After (1.0.2)
CanvasEmitterConfig(initialForce = IntRange(40, 100), ...)

Installation

implementation("io.github.piotrprus:particle-emitter:1.0.2")