Difference between revisions of "Particles"

From GiderosMobile
(case harmonisation)
(added example)
Line 7: Line 7:
 
=== Description ===
 
=== Description ===
 
A particle system which allows to draw several identical dots or bitmaps, with varying colour and orientation.
 
A particle system which allows to draw several identical dots or bitmaps, with varying colour and orientation.
 +
 +
=== Example ===
 +
<source lang="lua">
 +
-- gideros particles
 +
local particleGFX = Texture.new("gfx/fx/smoke.png")
 +
local stars = Particles.new()
 +
stars:setTexture(particleGFX)
 +
stage:addChild(stars)
 +
stage:addEventListener(Event.ENTER_FRAME, onEnterFrame)
 +
 +
-- GAME LOOP
 +
function onEnterFrame(e)
 +
if (e.time // 1) % 2 == 0 then
 +
self.stars:addParticles({
 +
{
 +
x=math.random(480),y=math.random(320),
 +
size=32,angle=math.random(360),
 +
color=0xffffff,alpha=0.2,
 +
ttl=16*64,
 +
speedX=0.01,speedY=0.01,speedAngular=0.15,
 +
speedGrowth=0.5,
 +
},
 +
{
 +
x=math.random(480),y=math.random(320),
 +
size=24,angle=math.random(360/2),
 +
color=0x0,alpha=0.2,
 +
ttl=8*64,
 +
speedX=0.01,speedY=0.01,speedAngular=0.015,
 +
speedGrowth=0.5,
 +
},
 +
})
 +
end
 +
end
 +
</source>
  
 
{|-
 
{|-

Revision as of 23:39, 2 August 2021

Supported platforms: Platform android.pngPlatform ios.pngPlatform mac.pngPlatform pc.pngPlatform html5.pngPlatform winrt.pngPlatform win32.png
Available since: Gideros 2016.06
Inherits from: Sprite

Description

A particle system which allows to draw several identical dots or bitmaps, with varying colour and orientation.

Example

-- gideros particles
local particleGFX = Texture.new("gfx/fx/smoke.png")
local stars = Particles.new()
stars:setTexture(particleGFX)
stage:addChild(stars)
stage:addEventListener(Event.ENTER_FRAME, onEnterFrame)

-- GAME LOOP
function onEnterFrame(e)
	if (e.time // 1) % 2 == 0 then
		self.stars:addParticles({
			{
				x=math.random(480),y=math.random(320),
				size=32,angle=math.random(360),
				color=0xffffff,alpha=0.2,
				ttl=16*64,
				speedX=0.01,speedY=0.01,speedAngular=0.15,
				speedGrowth=0.5,
			},
			{
				x=math.random(480),y=math.random(320),
				size=24,angle=math.random(360/2),
				color=0x0,alpha=0.2,
				ttl=8*64,
				speedX=0.01,speedY=0.01,speedAngular=0.015,
				speedGrowth=0.5,
			},
		})
	end
end

Methods

Particles.new creates new particles group
Particles:addParticles adds particles
Particles:clearTexture clears texture for all particles
Particles:getNearestParticle gets the index of the nearest particle to the given point
Particles:getParticleAngle gets particle angle
Particles:getParticleColor gets particle color and alpha value
Particles:getParticleDecay gets particle decay factor
Particles:getParticlePosition gets particle position
Particles:getParticleSize gets particle size in pixels
Particles:getParticleSpeed gets particle speed
Particles:getParticleTag gets particle associated tag
Particles:getParticleTtl gets particle initial time to live
Particles:getParticles gets particles
Particles:isPaused tells if the Particle set is paused
Particles:removeParticles removes particles by index in table or as arguments
Particles:scaleParticles scales or resizes all particles in this sprite
Particles:setParticleAngle sets particle angle
Particles:setParticleColor sets particle color
Particles:setParticleDecay sets particle decay factor
Particles:setParticlePosition sets particle position
Particles:setParticleSize sets particle size
Particles:setParticleSpeed sets particle speed
Particles:setParticleTag sets particle tag
Particles:setParticleTtl sets particle time to live
Particles:setPaused pauses or resumes the Particle set
Particles:setTexture sets texture to all particles

Events

Constants