Difference between revisions of "Particles:addParticles"

From GiderosMobile
m (formatting)
m (Text replacement - "</source>" to "</syntaxhighlight>")
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
 +
'''Available since:''' Gideros 2016.06<br/>
 +
'''Class:''' [[Particles]]<br/>
  
'''<translate>Available since</translate>:''' Gideros 2016.06<br/>
+
=== Description ===
'''<translate>Class</translate>:''' [[Special:MyLanguage/Particles|Particles]]<br/>
+
Adds a single particle (short form) or several ones (long form) to a particle system.
 
+
<syntaxhighlight lang="lua">
=== <translate>Description</translate> ===
+
(number or table) = Particles:addParticles(particles)
Add a single particle (short form) or several ones (long form) to this particle system.
+
</syntaxhighlight>
  
 
'''Short form''' (single particle): ''particles:addParticles(x,y,size,angle,ttl)''
 
'''Short form''' (single particle): ''particles:addParticles(x,y,size,angle,ttl)''
Line 12: Line 14:
  
 
where particleDescX is a table describing a particle to be added. This table can contain the following parameters:
 
where particleDescX is a table describing a particle to be added. This table can contain the following parameters:
*x,y: particle position
+
*'''x''','''y''': particle position
*size: particle size
+
*'''size''': particle size
*angle: particle orientation
+
*'''angle''': particle orientation
*color: particle color
+
*'''color''': particle color
*alpha: particle alpha
+
*'''alpha''': particle alpha
*ttl: time to leave, number of frames this particle will stay on screen
+
*'''ttl''': time to live, number of frames this particle will stay on screen
*tag: tag associated with this particle
+
*'''tag''': tag associated with this particle
*speedX,speedY,speedAngular,speedGrowth: Amount added to x,y,angle and size at the beginning of each frame
+
*'''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
+
*'''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.
<source lang="lua">
+
*'''z''', '''speedZ''': z particle position and associated speed (since Gideros 2022.5)
(number or table) = Particles:addParticles(particles)
+
*'''acceleration''', '''accelerationAngular''', '''accelerationGrowth''', '''accelerationAlpha''': amount added each frame to associated speed values (since Gideros 2022.5)
</source>
+
*'''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.
  
=== <translate>Parameters</translate> ===
+
=== Parameters ===
'''particles''': (table or arguments) <translate>table for multiple particles or arguments for single</translate>
+
'''particles''': (table or arguments) table for multiple particles or arguments for single particle</br>
  
=== <translate>Return values</translate> ===
+
=== Return values ===
'''<translate>Returns</translate>''' (number or table) <translate>index or table with indexes of added particles</translate>
+
'''Returns''' (number or table) index or table with indexes of added particles</br>
  
=== <translate>Example</translate> ===
+
=== Example ===
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
local stars = Particles.new()
 
local stars = Particles.new()
 
stars:setPosition(64, 64)
 
stars:setPosition(64, 64)
Line 42: Line 47:
 
})
 
})
 
end)
 
end)
</source>
+
</syntaxhighlight>
  
 
{{Particles}}
 
{{Particles}}

Latest revision as of 14:32, 13 July 2023

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)