查看: 1843|回复: 0
打印 上一主题 下一主题

【Flare3D创建黄色星球】添加粒子效果以仿真着火和烟雾_步骤6

[复制链接]

5472

主题

6

听众

1万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
76544
精华
23

活跃会员 荣誉管理 突出贡献 优秀版主 论坛元老

跳转到指定楼层
楼主
发表于 2013-3-3 10:36:38 |只看该作者 |倒序浏览
步骤 6:添加粒子效果以仿真着火和烟雾YellowPlanet_06.as 包含本节描述的代码。
现在是添加一些好看的特殊效果的时候了(参见图13)。 图13. 粒子效果能够将设计美学添加到游戏的外观
粒子允许你同时快速地绘制大量数据。 当你创建效果时,你可以将所有粒子进行分组并且在一次绘制调用中将它们全部绘制出来,以避免单独绘制每个粒子。 正如你能够想象的那样,这一策略能够提升绘图速度,因为粒子与其它 3D 对象的工作方式有点不同,并且粒子通常面向相机。
按照下列步骤在 3D Flash 游戏中使用粒子:
1.创建一个 particle 类,它扩展 Particle3D 类的功能以便用作一个 particle 模板。
2.覆盖方法 init,更新并且克隆 Particle3D 类以便将期望的行为添加到相应的粒子中。
3.创建一个 ParticleMaterial3D 类以便设置与粒子兼容的纹理、颜色或其它过滤器。
4.使用材料和粒子模板创建一个 ParticleEmiter3D 类。使用 emitParticlesPerFrame、particlesLife 和decrementPerFram 属性配置相应的发射器(emitter)。
5.在本范例中,新的发射器(emitter)是在由 ParticleEmiter3D 类扩展而来的独立类中创建的,以便代码更加简洁并且易于更新。
设立粒子元素
首先,设置用于粒子的变量。 注意 smoke 和 fire 均是 Texture3D对象。
private var smoke:Texture3D;private var fire:Texture3D;private var fireEmiter:FireEmiter;
然后,将纹理作为外部文件进行加载。
smoke = scene.addTextureFromFile( "smoke.png" );fire = scene.addTextureFromFile( "particle.png" );
使用 FireEmiter 你可以创建火焰发射器并且将它添加给宇航员。 FireEmiter 类扩展了 ParticleEmiter3D 功能,并且你可以在目录 srcobjects 下的sample files 文件夹中找到该类。将 FireEmiter 的 parent 设置为 astronaut。 这将确保粒子能够从astronaut 模型中发射出来。
fireEmiter = new FireEmiter( fire );fireEmiter.parent = astronaut;
使用 SmokeEmiter你可以按照使用 FireEmiter 的相同方式使用 SmokeEmiter。 在本范例游戏中,SmokeEmiter 与位于行星上的每个风扇是对应的。注意 SmokeEmiter 类将风扇方向用作每个发射器的方向:
// Creates a new smoke emiter and adds them tothe scene.var particles:SmokeEmiter = newSmokeEmiter( smoke );particles.copyTransformFrom( pivot );particles.parent = scene;
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-15 19:45 , Processed in 0.140726 second(s), 30 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部