zoukankan      html  css  js  c++  java
  • AS星尘粒子系统 初识2

    先来一些具体的类的简单介绍:

    XMLConvertible: 一个简单的接口类,所有的Stardust元素都需要实现这个接口。也就是说,所有的元素都要能生成XML配置文件,并且都能直接从XML中的数据中重新构建一个元素。提供两个接口,一个是toXML(),导出xml配置;一个是parseXML(). 从xml中构建。

    StardustElement: 实现了XMLConvertible接口。里面实现了最基本的xml转换。

    粒子系统创建初期,需准备一个时钟Clock。

    Clock 是一个星尘元素, getTicks() 方法在 Emitter.step()方法执行时调用,告诉emitter有多少个粒子将被创建。

    ClockCollector: 接口类。 提供addClock,removeClock,clearClocks三个接口。

    ClockCollection: 实现了ClockCollector的接口。供其他实现ClockCollector接口的类的内部调用。

    CompositeClock: 一组时钟。

    ImpulseClock: 突然的时钟(类似脉冲样的时钟吧)。 当impulse()方法调用之后,这个时钟会让emitter创建爆发的(burst)的粒子。

    RandomClock:  随机时钟。这个时钟将随机创建粒子。

    SteadyClock:  创建稳定时钟。

    发现问题。
    相信使用了Stardust最新的代码(stardust1.3.186)的会发现那个帮助手册上的内容已经过时了,没错,你会发现找不到DisplayObjectRenderer等类。而去前一个发布的版本(stardust1.2.163)中则还有。 说明代码在这个方面进行了一些改动。

    目前我的发现是,将DisplayObjectRenderer改由DisplayObjectHandler来代替了相应的职责。至于为什么这么改,先看看先。

    不过,类结构得重新介绍了。

    Action:  动作行为。以此为依据来更新粒子的属性。

    通常Action是和发射器关联的,当每个Emitter.step()调用的时候,ation.update()会被调用,那些粒子的属性神马的都会进行相应的更新。

    以下是Action的子类:

    age:粒子的寿命(年龄)。

    AlphaCurve: 透明度曲线。

    Die:应该配合action的trigger来使用,如果这个action直接添加到发射器上了,所有的粒子在出生之后都将标记为死亡。

    ScaleCurve:

    DeathLife:标记一个粒子为死亡,当粒子的life为0的时候。

    当粒子的生命结束的时候,如果你希望将他们从simulatin(仿真?)中移除,记得把这个DeathLife动作添加到emitter中。

    Action2D: 是所有2D行为的基类。旗下有很多2D行为的子类。如Spawn,snapshot,Move等。。。。

  • 相关阅读:
    小程序排错(redis导致)
    linux系统删除-开头文件或目录
    nginx 反向代理
    memcache
    一次故障过程
    json.Decoder vs json.Unmarshal
    ssl中间证书
    作业10:String类
    Angular6如何引入jQuery-knob
    OpenJdk源码下载
  • 原文地址:https://www.cnblogs.com/holycy/p/2233177.html
Copyright © 2011-2022 走看看