`

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

阅读更多
http://www.newflash3d.com---flash3D先锋队:北京贝武易科技公司】
有疑问请联系我QQ:363596350
下面我们建立一个烟花粒子特效。
我们这里说说我们的结构思路,基本上我们由下面的文件组成:

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类,

它继承自org.flintparticles.threeD.emitters.Emitter3D

最终如图:

这样我们算是建立一个基本的粒子发射器:
package
{
	import org.flintparticles.threeD.emitters.Emitter3D;

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

但是粒子的许多属性我们都还没有建立,例如粒子是什么样子的?在什么位置?它的速度?它的颜色等等,这些因素我们主要在粒子的类里建立起来。
为了便于测试效果,我们需要把Main.as主程序也完善,加上渲染器等元素。
我们这里用BitmapRenderer类型渲染器,详细的知识请参阅http://flintparticles.org/docs/关于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粒子发射器。
粒子系统有两个主要的修改器:
Initializers(初始化修改器)-一次性的控制粒子初始生成时候的属性,也就是初始属性;
Actions(行为控制器)---是控制粒子在运行中的属性。
所以我们需要给粒子增加这两大类修改器。

待续!----------















  • 大小: 6.8 KB
  • 大小: 36.3 KB
  • 大小: 86.3 KB
  • 大小: 46.1 KB
分享到:
评论

相关推荐

    flint粒子系统-飞翔的乌鸦flash 3d

    其中,Flint粒子系统是一款强大的开源粒子编辑器,它允许开发者通过简单易用的界面创建出复杂的3D效果。本篇文章将深入探讨如何利用Flint粒子系统来实现《飞翔的乌鸦》这一特定的3D场景。 1. Flint粒子系统简介 ...

    BornGrass-flint粒子系统-完美的草丛flash 3d

    《BornGrass-flint粒子系统:打造极致真实的Flash 3D草丛效果》 在数字艺术与游戏开发领域,粒子系统是一种重要的技术手段,用于创建动态的、视觉上吸引人的效果,如火焰、烟雾、水流、草动等。本文将深入探讨...

    Flint_2_1_3_source.zip_Flint_2_1_3_source_flex

    Flint 2.1.3 是一款专为Adobe Flex开发者设计的3D粒子系统库,它的核心功能在于提供强大的工具来创建令人惊叹的视觉效果,如火焰、烟雾、雪花、星光等。这款开源库为Flex应用程序注入了丰富的动态元素,使得用户界面...

    Flint: Making Sparks (and Sharks!)

    1. Flint实例管理加密的AWS凭证。 2. 创建S3存储桶以存储JAR文件。 3. 创建SimpleDB表格以存储状态信息。 4. 创建用于实例的密钥对和安全组。 5. 通过JSON规范定义集群,包含主实例和从实例的配置,以及扩展规则。 6...

    数论库flint手册

    ### 数论库FLINT手册知识点概述 #### 一、引言 **FLINT**(Fast Library for Number Theory)是一款高效且功能强大的数论计算库,主要用于处理与数论相关的复杂运算,如大整数运算、多项式计算等。该库支持任意精度...

    flint:前端入门套件

    **Flint前端入门套件** 是一款专为初学者设计的工具包,旨在简化前端开发的初始阶段。它特别强调了CSS预处理的功能,帮助开发者更高效地编写样式代码。预处理器如Sass、Less或Stylus允许开发者使用变量、嵌套规则、...

    Combustion三维视频特效软件.doc

    这款软件在PC和苹果平台上运行,集成了多种高级工具,包括矢量绘画、粒子系统、视频效果处理、轨迹动画以及3D效果合成。Combustion的功能强大,能够满足从动态图像制作到3D合成的广泛需求。 操作说明详细介绍了...

    前端开源库-flint-babylon

    3. **预设组件**:`flint-babylon`可能包含了预设的3D对象和组件,如相机、粒子系统、UI元素等,方便开发者快速搭建3D场景。 4. **性能优化**:通过针对前端应用场景的优化,`flint-babylon`可能提高了Babylon.js在...

    Discreet推出基于英特尔架构IBM Linux工作站的flint视觉效果系统.pdf

    标题中的"Discreet推出基于英特尔架构IBM Linux工作站的flint视觉效果系统"揭示了这一事件的核心内容,即Discreet公司(可能是指现在的Autodesk Discreet,Autodesk的一个子公司,专注于媒体与娱乐行业的软件)发布...

    FLINT Jul 2012.pdf

    FLINT(FLEXIBLE INTERCEPTOR A REALISTIC MISSILE SIMULATION SOFTWARE)是一款针对商品游戏(commodity games)的现实主义导弹模拟软件。它能在不需要复杂引擎支持的情况下,为游戏提供相当真实的导弹和火箭弹道的...

    基于Flint的师生互动实证研究论文.pdf

    本文基于Flint的师生互动实证研究,旨在探讨基于Flint的师生互动实证研究,提高教学效果,提高教师的教学语言,提高学生的学习效果。 知识点: 1. FIAS(Flanders Interaction Analysis System):一种客观的教学...

    flint8.5 on linux特效合成系统.pdf

    flint8.5 on linux特效合成系统.pdf

    flint:用于智能合约的Flint编程语言

    int石编程语言 Flint是一种新型的类型安全,面向合同的编程语言,专门用于在以太坊上编写健壮的智能合同。 Flint仍处于alpha开发阶段,尚未准备好用于生产中。 中型文章: 和编程2018! 论文:当前工作文件: 在苏珊...

    flint_加密方法_C++语言库

    1. **RSA**:这是最著名的非对称加密算法之一,基于大数因子分解的困难性。在rsa子目录中,可能会包含RSA的公钥和私钥生成、加密和解密的函数。 2. **对称加密**:如AES(高级加密标准)、DES(数据加密标准)或3...

    flint-web-sdk:JavaScript 中的 Flint Web SDK

    script src =" //openflint.github.io/flint-web-sdk/out/flint_receiver_sdk.js " > </ script > < script src =" //openflint.github.io/flint-web-sdk/out/libs/mediaplayer.js " > </ ...

    Flint:Flint框架,用于使用功能驱动开发在Apple平台上构建应用程序

    我们之所以选择Flint,是因为我们希望人们为Apple平台构建出色的应用程序,从而充分利用本机平台的功能而避免麻烦。 :house: 是官方网站,包含指南和API文档以及博客 :speech_balloon: :envelope_selector: :bird: ...

    数论库FLINT

    强大的数论库

    flint-receiver-sdk:弃用的项目

    script src =" //openflint.github.io/flint-receiver-sdk/v1/receiver.js " > </ script >< script src =" //openflint.github.io/flint-receiver-sdk/v1/receiver_wrapper.js " > </ script &...

    flint-web-sender-sdk:弃用的项目

    Flint 是一个跨平台的消息传递框架,而 `flint-web-sender-sdk` 是该框架的一个组成部分,专门设计用于Web应用程序的发送端SDK。这个SDK允许Web应用与Flint服务器进行交互,实现消息发送、接收或其他相关功能。然而...

Global site tag (gtag.js) - Google Analytics