_ParticlePlayer

用于直接播放pfx文件 全部展开

只读属性展开

  • + holder : object

    pfx所属的对象。

    • 示例

       scene = particlePlayer.holder
  • + isPlaying : bool

    pfx是否在播放。

    • 示例

       print(particlePlayer.isPlaying)

属性展开

  • + height : number

    粒子播放器距离地表的高度。

    • 示例

       particlePlayer.height = 10
  • + particleFrameLimit : uint

    粒子播放器帧数限制,根据帧数限制计算粒子的transform。

    • 示例

       particlePlayer.particleFrameLimit = 3
  • + pause : bool

    暂停pfx。

    • 示例

       print(particlePlayer.pause)
  • + scene : _Scene

    粒子播放器作用的场景,多用于草的动态效果和自定义点光特效作用的场景。

    • 示例

       particlePlayer.scene = _Scene.new('home.sen')
  • + show : bool

    显示pfx。

    • 示例

       print(particlePlayer.show)
  • + terrain : _Terrain

    设置播放地表粒子时的地表信息。

    • 示例

       sen = _Scene.new('home.sen')
      particlePlayer.terrain = sen.terrain

构造方法展开

公共方法展开

  • + function addParam(param : _ParticleParam)

    添加一个播放参数。

  • + function clearParams()

    清空所有播放参数。

    • 示例

       particlePlayer:clearParams()
  • + function delParam(name)

    删除名为name的播放参数。

    • 示例

       particlePlayer:delParam(name)
  • + function draw2D(x : number, y : number)

    指定绘制粒子播放器的位置。

    • 参数
    • x, y : 粒子播放器位置。
    • 示例

       particlePlayer:draw2D(20, 20)
  • + function enumPfx(name : string, callback : function)

    枚举名字复合的pfx

    • 参数
    • name : 匹配的名字。
    • callback : 匹配的回调。
  • + function getParam(name:string) : _ParticleParam

    获得名为name的播放参数。

    • 示例

       param = particlePlayer:getParam(name)
  • + function getParams() : _ParticleParam[]

    获得所有播放参数。

    • 示例

       params = particlePlayer:getParams()
  • + function move2D(name : string, x : number, y : number)

    移动粒子播放器到指定位置。

    • 参数
    • name : 资源名。
    • x, y : 移动的位置。
    • 示例

       particlePlayer:move2D('pfx_ui_gg.pfx', 0, 20)
  • + function onEvent([once: bool], callback : function)

    设置pfx事件的回调。

    • 参数
    • once : 默认为false。设置为true时,回调只调用一次。
    • callback : 回调函数。参数为pfx的名字和对象。
  • + function play([logicname : string], resname : string, mat : _Matrix3D) : _Particle
    • 参数
    • logicname : 逻辑名字。
    • resname : 资源名。
    • mat : 播放矩阵
    • 返回
    • 返回播放的Pfx对象。
    • 示例

        pfx = particlePlayer:play('pfx_ui_gg.pfx', _Matrix3D.new():setTranslation(0, 20, 0))
  • + function play2D([logicname : string], resname : string, x : number, y : number, scale : number)

    用2D的方式播放粒子。

    • 参数
    • logicname : 逻辑名。
    • resname : 资源名。
    • x, y, scale : 播放。
    • 示例

       particlePlayer:play2D('pfx_ui_gg.pfx', 0, 0, 20)
  • + function playParam([logicname : string], resname : string, param : string)

    用名为param的_ParticleParam规则播放resname的Pfx

    • 参数
    • logicname : 逻辑名字。
    • resname : 资源名。
    • param : 规则名
    • 返回
    • pfx的数组
    • 示例

       particlePlayer:playParam(resname, param)
  • + function replace(logicname : string, resname : string)

    用新的pfx替代逻辑名为Logicname的pfx。

    • 参数
    • logicname : 被替换的pfx的逻辑名。
    • resname : 资源名。
    • 示例

       particlePlayer:replace(logicname, resname)
  • + function reset(logicname : string)

    重放指定Pfx

    • 参数
    • logicname : pfx的逻辑名。
    • 示例

       particlePlayer:reset(logicname)
  • + function stop(logicName : string, stopnow : bool)

    停止正在播放的pfx

    • 参数
    • logicName是在播放该pfx赋予的逻辑名称。
    • stopnow:值为true时表示立即停止。

    • 示例

       particlePlayer:stop(logicName, false)
  • + function stopAll(stopnow : bool)

    停止全部正在播放的pfx。

    • 参数
    • stopnow:值为true时表示立即停止。

    • 示例

       particlePlayer:stopAll(true)

代码示例

    _sys:addPath('res')
    _dofile('cameracontrol.lua')
    _rd.camera.eye = _Vector3.new(50, 50, 50)

    m1 = _Matrix3D.new():setTranslation(0, 20, 0)
    m2 = _Matrix3D.new():setTranslation(-10, -40, 0)
    m3 = _Matrix3D.new():setTranslation(0, -40, 0)
    m4 = _Matrix3D.new():setTranslation(10, -40, 0)
    m2.ignoreWorld, m3.ignoreWorld, m4.ignoreWorld = true, true, true

    skl = _Skeleton.new('girl.skl')
    san = skl:addAnima('skill.san|skill1.tag')
    san.speed = 0.2
    san.loop = true
    san:play()

    msh = _Mesh.new('sword.msh')
    skl = msh:attachSkeleton(skl, 'rw', msh.graData:getMarker('dum_w'))

    mrw = skl:getBone('rw'):clone()
    mrw.root = m1

    ooo = _ParticleParam.new('ooo')
    ooo:addMarker('source', mrw)
    ooo:addMarker('target', m3)
    ooo:addDuration('bind_target', 1000)
    ooo.transform:setScaling(10, 10, 10)
    skl.pfxPlayer:addParam(ooo)

    oom1 = _ParticleParam.new('ooo')
    oom1:addMarker('source', mrw)
    oom1:addMarker('target', m2)
    skl.pfxPlayer:addParam(oom1)

    oom2 = _ParticleParam.new('ooo')
    oom2:addMarker('source', mrw)
    oom2:addMarker('target', m3)
    skl.pfxPlayer:addParam(oom2)

    oom3 = _ParticleParam.new('ooo')
    oom3:addMarker('source', mrw)
    oom3:addMarker('target', m4)
    skl.pfxPlayer:addParam(oom3)

    skl.pfxPlayer:onEvent(function (e) print(e) end)

    _app:onIdle(function(e)
    _rd:drawAxis(20)

    _rd:pushMatrix3D(m1)
    msh:drawMesh()
    skl:drawSkeleton()
    _rd:popMatrix3D()

    _rd:pushMatrix3D(m2)
    _rd:drawAxis(5)
    _rd:popMatrix3D()

    _rd:pushMatrix3D(m3)
    _rd:drawAxis(5)
    _rd:popMatrix3D()

    _rd:pushMatrix3D(m4)
    _rd:drawAxis(5)
    _rd:popMatrix3D()
    end)
问题反馈(登录才可以发表哦!)