Flint Particle粒子入门教程(三):三维粒子实例之烟花效果

[b]【[url]http://www.newflash3d.com[/url]---flash3D先锋队:北京贝武易科技公司】[/b]
有疑问请联系我QQ:363596350
下面我们建立一个烟花粒子特效。
我们这里说说我们的结构思路,基本上我们由下面的文件组成:
[img]/upload/attachment/67834/306f2f69-d077-3edf-bd47-d34298448b26.jpg[/img]
fireworkFlex002.mxml---Flex的主程序文件
myCanvas3D-----画布的组件文件包
org---------Flint Particle类包
Main-----烟花程序的运行文件包
SphereBang.as---烟花发射器样式类(炸开的圆形烟花粒子)
Whizzer.as-----烟花发射器样式类(上升的烟花粒子)
这样我们所需的所有的粒子结构就完成了。
Main把SphereBang.as和Whizzer.as放进来渲染出来,加到显示画布上,fireworkFlex002.mxml通过生成Main的对象提供了供Main使用的画布。
那么我们就按这个思路来建立我们的应用程序了。
好,先建立一个Whizzer.as的粒子发射器,这个类继承自Emitter3D,布置好环境后,生成一个新的as类,
[img]/upload/attachment/67839/62f379e2-37b8-3288-8ff4-e4998fd9280b.jpg[/img]
它继承自org.flintparticles.threeD.emitters.Emitter3D
[img]/upload/attachment/67843/163bcf2a-8fce-3995-9353-3473f4e289da.jpg[/img]
最终如图:
[img]/upload/attachment/67845/29036cc1-95c5-3d28-9bb8-0e054cae8428.jpg[/img]
这样我们算是建立一个基本的粒子发射器:
package
{
import org.flintparticles.threeD.emitters.Emitter3D;

public class Whizzer extends Emitter3D
{
public function Whizzer()
{
super();
}

}
}

但是粒子的许多属性我们都还没有建立,例如粒子是什么样子的?在什么位置?它的速度?它的颜色等等,这些因素我们主要在粒子的类里建立起来。
为了便于测试效果,我们需要把Main.as主程序也完善,加上渲染器等元素。
我们这里用BitmapRenderer类型渲染器,详细的知识请参阅[url]http://flintparticles.org/docs/[/url]关于BitmapRenderer的知识点。
需要注意的是位图渲染器(BitmapRenderer)内置了一个摄像机(camera)。默认的情况下鼠标事件是不激活的,我们需要手动激活鼠标事件。
它的构造函数:
BitmapRenderer(canvas:Rectangle, zSort:Boolean = true, smoothing:Boolean = false)

第一个canvas为画布,控制了粒子的显示范围;
zSort:z轴粒子的排列,默认为true;
smoothing:滤波效果,默认不启用。
我们的Main的代码如下:
/**
* Main只是一个框架结构
*
*/
package
{
import flash.display.Sprite;
import flash.geom.Rectangle;

import org.flintparticles.threeD.renderers.BitmapRenderer;

public class Main
{
private var _sCanvas:Sprite;
//Flint Particle粒子基本元素的建立(渲染器和粒子发射器)
private var render:BitmapRenderer;
private var emitter:Whizzer;
public function Main(_sCanvas:Sprite):void
{
super();
this._sCanvas=_sCanvas;
//生成基本的元素并加到画布上
render=new BitmapRenderer(new Rectangle(-200,-200,400,400));//生成渲染器
emitter=new Whizzer();//生成粒子发射器
emitter.start();//启动粒子发射器
render.x=200;//定好渲染器的位置
render.y=200;
render.addEmitter(emitter);//把粒子发射器发到渲染器上
_sCanvas.addChild(render);//把渲染器加到场景去

}

}
}

这里大家需要注意new Rectangle(-200,-200,400,400)的值与render.x=200;render.y=200;之间的关系,在Rectangle范围之外的粒子是不显示的。

到这个阶段,一个基本的框架就搭建起来了,下面我们需要去细化我们的Whizzer粒子发射器。
粒子系统有两个主要的修改器:
[b]Initializers[/b](初始化修改器)-一次性的控制粒子初始生成时候的属性,也就是初始属性;
[b]Actions[/b](行为控制器)---是控制粒子在运行中的属性。
所以我们需要给粒子增加这两大类修改器。

待续!----------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值