PicoPicoGameEngine

Quick Links

パーティクルオブジェクト

パーティクルオブジェクトはパーティクルを扱うオブジェクトです。pexファイルに対応しています。

ppparticle

.new()

パーティクルオブジェクトを作成します。

引数nを指定すると指定した数だけパーティクルオブジェクトが入ったテーブルを返します。

part = ppparticle.new()
name : string

part_array = ppparticle.new(n)
part : ppparticle object

パーティクルオブジェクト

n : number

生成するパーティクルオブジェクトの数

part_array : object

パーティクルオブジェクトの配列

:load()

パーティクルの設定データを読み込みます。

※DotEDITORでは使用できません。

part:load(pex_filename)
part : ppparticle object

パーティクルオブジェクト

pex_filename : string

pex形式のパーティクル設定ファイル

:set()

パーティクルのパラメータをセットします。

part:set(part_params)
part : ppparticle object

パーティクルオブジェクト

part_params : object

デフォルト値は次のようになっています。

emitterType=0
speed=50
speedVariance=11
particleLifeSpan=0.5
particleLifeSpanVariance=0
angle=0
angleVariance=360
radialAcceleration=0
tangentialAcceleration=0
radialAccelVariance=0
tangentialAccelVariance=0
maxParticles=100
startParticleSize=32
startParticleSizeVariance=0
finishParticleSize=32
finishParticleSizeVariance=0
duration=0.1
blendFuncSource=770
blendFuncDestination=771
maxRadius=10
maxRadiusVariance=0
radiusSpeed=0
minRadius=10
rotatePerSecond=0
rotatePerSecondVariance=0
rotationStart=0
rotationStartVariance=0
rotationEnd=0
rotationEndVariance=0
sourcePosition=PPPoint(160,160)
sourcePositionVariance=
  PPPoint(7,7)
gravity=PPPoint(0,0)
startColor=
  PPFColor(255,255,255,255)
startColorVariance=
  PPFColor(0,0,0,0)
finishColor=
  PPFColor(255,255,255,0)
finishColorVariance=
  PPFColor(0,0,0,0)
animationTime=1/60.0
animationData=nil
animationLoopPoint=1
pptex:default(
  pptex:load("sample.png"))
    
p=ppparticle.new()
p:property({
  startColor={
    r=240,
    g=240,
    b=0,
    a=255},
  startColorVariance={
    r=20,
    g=20,
    b=0,
    a=0},
  finishColor={
    r=250,
    g=0,
    b=0,
    a=0},
  finishColorVariance={
    r=0,
    g=0,
    b=0,
    a=0},
  animationTime=0.5,
  animationData={10},
  animationLoopPoint=1
})

function start()
  if #pptouch()>0 then
    local t=pptouch()[1]
    p:property(
        {sourcePosition=t})
    p:fire()
  end
  p:idle()
  p:draw()
end

:fire()

パーティクルを発生させます。

part:fire()
part : ppparticle object

パーティクルオブジェクト

pptex:default(
  pptex:load("sample.png"))
    
p=ppparticle.new()
p:property({
  animationTime=0.5,
  animationData={10},
  animationLoopPoint=1
})

function start()
 if #pptouch()>0 then
   local t=pptouch()[1]
   p:property(
     {sourcePosition=t})
   p:fire()
 end
 p:idle()
 p:draw()
end

:elapsedTime()

経過時間を設定します。

引数がない場合は経過時間を返します。

part:elapsedTime(time)
part : ppparticle object

パーティクルオブジェクト

time : number

経過時間

:count()

現在発生中のパーティクルの数を返します。

num = part:count()
part : ppparticle object

パーティクルオブジェクト

num : number

パーティクルの数

:stop()

パーティクル処理を止めます。

part:stop()
part : ppparticle object

パーティクルオブジェクト