Difference between revisions of "B2.ParticleSystem"
From GiderosMobile
(20 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
− | '''Supported platforms:''' <br/> | + | <!-- GIDEROSOBJ:b2.ParticleSystem --> |
+ | '''Supported platforms:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]][[File:Platform html5.png]][[File:Platform winrt.png]][[File:Platform win32.png]]<br/> | ||
'''Available since:''' Gideros 2015.06.30<br/> | '''Available since:''' Gideros 2015.06.30<br/> | ||
+ | |||
=== Description === | === Description === | ||
− | Defines particle system in box2d world using | + | Defines a particle system in box2d world using LiquidFun. |
− | + | ||
− | + | === Examples === | |
− | + | '''Simple particle system example''' | |
− | + | <syntaxhighlight lang="lua"> | |
− | + | -- create world | |
− | + | local world = b2.World.new(0, 9.8) | |
− | + | ||
− | + | local ps1 = world:createParticleSystem({ radius=5}) | |
− | + | ps1:setTexture(Texture.new("Bubble.png")) | |
− | + | stage:addChild(ps1) | |
− | + | ||
− | + | ps1:createParticleGroup({shape=shape2, | |
− | + | position={x=500,y=250}, | |
− | + | color = 0xFF0000, | |
− | + | alpha=1, | |
− | + | flags=b2.ParticleSystem.FLAG_COLOR_MIXING | b2.ParticleSystem.FLAG_POWDER, | |
− | + | }) | |
− | + | ||
+ | ps1:createParticleGroup({shape=shape1, | ||
+ | position={x=400,y=50}, | ||
+ | color = 0x0000FF, | ||
+ | alpha=1, | ||
+ | flags=0 | ||
+ | }) | ||
+ | |||
+ | -- step the world and then update the position and rotation of sprites | ||
+ | local function onEnterFrame() | ||
+ | world:step(1/60, 8, 3) | ||
+ | end | ||
+ | |||
+ | stage:addEventListener(Event.ENTER_FRAME, onEnterFrame) | ||
+ | </syntaxhighlight> | ||
+ | |||
{|- | {|- | ||
− | | style="width: 50%;"| | + | | style="width: 50%; vertical-align:top;"| |
=== Methods === | === Methods === | ||
− | [[b2.ParticleSystem:containsParticle]] | + | [[b2.ParticleSystem:containsParticle]] ''whether a particle is in the particle system''<br/><!--GIDEROSMTD:b2.ParticleSystem:containsParticle(id) whether a particle is in the particle system--> |
− | [[b2.ParticleSystem:createParticle]] | + | [[b2.ParticleSystem:createParticle]] ''creates a new particle system''<br/><!--GIDEROSMTD:b2.ParticleSystem:createParticle(particleDef) creates a new particle system--> |
− | [[b2.ParticleSystem:createParticleGroup]] | + | [[b2.ParticleSystem:createParticleGroup]] ''creates a group of particles''<br/><!--GIDEROSMTD:b2.ParticleSystem:createParticleGroup(particleGoupDef) creates a group of particles--> |
− | [[b2.ParticleSystem:destroyParticle]] | + | [[b2.ParticleSystem:destroyParticle]] ''destroys a particle by id''<br/><!--GIDEROSMTD:b2.ParticleSystem:destroyParticle(id) destroys a particle by id--> |
− | [[b2.ParticleSystem:destroyParticles]] - <br/> | + | [[b2.ParticleSystem:destroyParticles]] ''destroys multiple particles by their id''<br/><!--GIDEROSMTD:b2.ParticleSystem:destroyParticles(ids) destroys multiple particles by their id--> |
− | [[b2.ParticleSystem:getParticleCount]] - <br/> | + | [[b2.ParticleSystem:getColorBuffer]] ''gets the color of each particle''<br/><!--GIDEROSMTD:b2.ParticleSystem:getColorBuffer() gets the color of each particle--> |
− | [[b2.ParticleSystem: | + | [[b2.ParticleSystem:getParticleCount]] ''gets the number of particles''<br/><!--GIDEROSMTD:b2.ParticleSystem:getParticleCount() gets the number of particles--> |
− | [[b2.ParticleSystem:setTexture]] | + | [[b2.ParticleSystem:getParticleGroupList]] ''gets the particles group list''<br/><!--GIDEROSMTD:b2.ParticleSystem:getParticleGroupList() gets the particles group list--> |
− | | style="width: 50%;"| | + | [[b2.ParticleSystem:getPositionBuffer]] ''gets the position of each particle''<br/><!--GIDEROSMTD:b2.ParticleSystem:getPositionBuffer() gets the position of each particle--> |
+ | [[b2.ParticleSystem:getVelocityBuffer]] ''gets the velocity of each particle''<br/><!--GIDEROSMTD:b2.ParticleSystem:getVelocityBuffer() gets the velocity of each particle--> | ||
+ | [[b2.ParticleSystem:getWeightBuffer]] ''gets the weight of each particle''<br/><!--GIDEROSMTD:b2.ParticleSystem:getWeightBuffer() gets the weight of each particle--> | ||
+ | [[b2.ParticleSystem:setTexture]] ''sets a texture to particles''<br/><!--GIDEROSMTD:b2.ParticleSystem:setTexture(texture,size) sets a texture to particles--> | ||
+ | |||
+ | | style="width: 50%; vertical-align:top;"| | ||
=== Events === | === Events === | ||
=== Constants === | === Constants === | ||
− | [[b2.ParticleSystem.FLAG_COLOR_MIXING]] | + | [[b2.ParticleSystem.FLAG_BARRIER]]<br/><!--GIDEROSCST:b2.ParticleSystem.FLAG_BARRIER x--> |
− | [[b2.ParticleSystem.FLAG_ELASTIC]] | + | [[b2.ParticleSystem.FLAG_COLOR_MIXING]]<br/><!--GIDEROSCST:b2.ParticleSystem.FLAG_COLOR_MIXING 256--> |
− | [[b2.ParticleSystem.FLAG_POWDER]] | + | [[b2.ParticleSystem.FLAG_DESTRUCTION_LISTENER]]<br/><!--GIDEROSCST:b2.ParticleSystem.FLAG_DESTRUCTION_LISTENER x--> |
− | [[b2.ParticleSystem.FLAG_SPRING]] | + | [[b2.ParticleSystem.FLAG_ELASTIC]]<br/><!--GIDEROSCST:b2.ParticleSystem.FLAG_ELASTIC 16--> |
− | [[b2.ParticleSystem.FLAG_TENSILE]] | + | [[b2.ParticleSystem.FLAG_FIXTURE_CONTACT_FILTER]]<br/><!--GIDEROSCST:b2.ParticleSystem.FLAG_FIXTURE_CONTACT_FILTER x--> |
− | [[b2.ParticleSystem.FLAG_VISCOUS]] | + | [[b2.ParticleSystem.FLAG_FIXTURE_CONTACT_LISTENER]]<br/><!--GIDEROSCST:b2.ParticleSystem.FLAG_FIXTURE_CONTACT_LISTENER x--> |
− | [[b2.ParticleSystem.FLAG_WALL]] | + | [[b2.ParticleSystem.FLAG_PARTICLE_CONTACT_FILTER]]<br/><!--GIDEROSCST:b2.ParticleSystem.FLAG_PARTICLE_CONTACT_FILTER x--> |
− | [[b2.ParticleSystem.FLAG_WATER]] | + | [[b2.ParticleSystem.FLAG_PARTICLE_CONTACT_LISTENER]]<br/><!--GIDEROSCST:b2.ParticleSystem.FLAG_PARTICLE_CONTACT_LISTENER x--> |
− | [[b2.ParticleSystem.FLAG_ZOMBIE]] | + | [[b2.ParticleSystem.FLAG_POWDER]]<br/><!--GIDEROSCST:b2.ParticleSystem.FLAG_POWDER 64--> |
+ | [[b2.ParticleSystem.FLAG_REACTIVE]]<br/><!--GIDEROSCST:b2.ParticleSystem.FLAG_REACTIVE x--> | ||
+ | [[b2.ParticleSystem.FLAG_REPULSIVE]]<br/><!--GIDEROSCST:b2.ParticleSystem.FLAG_REPULSIVE x--> | ||
+ | [[b2.ParticleSystem.FLAG_SPRING]]<br/><!--GIDEROSCST:b2.ParticleSystem.FLAG_SPRING 8--> | ||
+ | [[b2.ParticleSystem.FLAG_STATIC_PRESSURE]]<br/><!--GIDEROSCST:b2.ParticleSystem.FLAG_STATIC_PRESSURE x--> | ||
+ | [[b2.ParticleSystem.FLAG_TENSILE]]<br/><!--GIDEROSCST:b2.ParticleSystem.FLAG_TENSILE 128--> | ||
+ | [[b2.ParticleSystem.FLAG_VISCOUS]]<br/><!--GIDEROSCST:b2.ParticleSystem.FLAG_VISCOUS 32--> | ||
+ | [[b2.ParticleSystem.FLAG_WALL]]<br/><!--GIDEROSCST:b2.ParticleSystem.FLAG_WALL 4--> | ||
+ | [[b2.ParticleSystem.FLAG_WATER]]<br/><!--GIDEROSCST:b2.ParticleSystem.FLAG_WATER 0--> | ||
+ | [[b2.ParticleSystem.FLAG_ZOMBIE]]<br/><!--GIDEROSCST:b2.ParticleSystem.FLAG_ZOMBIE 2--> | ||
|} | |} | ||
+ | |||
+ | ---- | ||
+ | *'''[[LiquidFun]]''' |
Latest revision as of 06:49, 8 November 2024
Supported platforms:
Available since: Gideros 2015.06.30
Description
Defines a particle system in box2d world using LiquidFun.
Examples
Simple particle system example
-- create world
local world = b2.World.new(0, 9.8)
local ps1 = world:createParticleSystem({ radius=5})
ps1:setTexture(Texture.new("Bubble.png"))
stage:addChild(ps1)
ps1:createParticleGroup({shape=shape2,
position={x=500,y=250},
color = 0xFF0000,
alpha=1,
flags=b2.ParticleSystem.FLAG_COLOR_MIXING | b2.ParticleSystem.FLAG_POWDER,
})
ps1:createParticleGroup({shape=shape1,
position={x=400,y=50},
color = 0x0000FF,
alpha=1,
flags=0
})
-- step the world and then update the position and rotation of sprites
local function onEnterFrame()
world:step(1/60, 8, 3)
end
stage:addEventListener(Event.ENTER_FRAME, onEnterFrame)