- 最后登录
- 2022-10-8
- 注册时间
- 2010-12-6
- 阅读权限
- 100
- 积分
- 14150
- 纳金币
- 76544
- 精华
- 23
|
步骤 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;
|
|