Particles:addParticles

From GiderosMobile
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Available since: Gideros 2016.06
Class: Particles

Description

Adds a single particle (short form) or several ones (long form) to a particle system.

(number or table) = Particles:addParticles(particles)

Short form (single particle): particles:addParticles(x,y,size,angle,ttl)

Extended form: particles:addParticles{particleDesc1,particleDesc2,...,particleDescN}

where particleDescX is a table describing a particle to be added. This table can contain the following parameters:

  • x,y: particle position
  • size: particle size
  • angle: particle orientation
  • color: particle color
  • alpha: particle alpha
  • ttl: time to live, number of frames this particle will stay on screen
  • tag: tag associated with this particle
  • speedX, speedY, speedAngular, speedGrowth: amount added to x, y, angle and size at the beginning of each frame
  • decay, decayAngular, decayGrowth, decayAlpha: factor applied to speedX and speedY, speedAngular, speedGrowth and alpha at the beginning of each frame. A value below 1 will substract and a value above 1 will add to the current value.
  • z, speedZ: z particle position and associated speed (since Gideros 2022.5)
  • acceleration, accelerationAngular, accelerationGrowth, accelerationAlpha: amount added each frame to associated speed values (since Gideros 2022.5)
  • extra: additional float value available in the shader (since Gideros 2022.5)


Since Gideros 2022.5, decay and acceleration can be vectors, allowing to specify different values for x,y and z components.

Parameters

particles: (table or arguments) table for multiple particles or arguments for single particle

Return values

Returns (number or table) index or table with indexes of added particles

Example

local stars = Particles.new()
stars:setPosition(64, 64)
stage:addChild(stars)
stage:addEventListener(Event.ENTER_FRAME, function()
	stars:addParticles({
		{x=math.random(4*64),y=math.random(5*64),size=math.random(1,30),color=0xD9B589,ttl=1*60,speedX=0,speedY=0},
		{x=math.random(2*64),y=math.random(5*64),size=math.random(1,30),color=0xffff00,ttl=30*60,speedX=1,speedY=0},
	})
end)