
深例倦职业波术学院 Shenzhen Institute ol Inform ation Technology 国家示范性软件学院 3D网络游戏开发实践 主讲教师:徐守祥 任务2.2:实现爆炸效果 知识点总结
3D网络游戏开发实践 主讲教师:徐守祥 任务2.2: 实现爆炸效果 知识点总结

深例倦职业波术学院 任务2.2 Shenzhen Institute ol Inform ation Technology 国家示范性软件学院 实现爆炸效果 。爆炸特效 。爆炸效果是在粒子的基础上要求更高的特效。 爆炸过程中需要模拟各种粒子:火、烟、飞散的碎片 等等 还使用ExplosionData、DebrisData两个datablock模 拟特效。 ☐ 返回
任务2.2 实现爆炸效果 ⚫ 爆炸特效 ⚫ 爆炸效果是在粒子的基础上要求更高的特效。 ⚫ 爆炸过程中需要模拟各种粒子:火、烟、飞散的碎片 等等。 ⚫ 还使用ExplosionData、DebrisData两个datablock模 拟特效。 返回

深例倦职业波术学院 任务2.2 Shenzhen Institute ol Inform ation Technology 国家示范性软件学院 实现爆炸效果 DebrisData 用来模拟碎片、残骸。 ●ExplosionData 。代表爆炸的datablock对象 由数个ParticleEmitterData、AudioProfile、 DebrisData分别指定用来模拟爆炸的各种粒子对象, 声音对象和碎片对象。 。将分散对象组织起来,共同完成爆炸过程的模拟。 ←口返回
任务2.2 实现爆炸效果 ⚫ DebrisData 用来模拟碎片、残骸。 ⚫ ExplosionData ⚫ 代表爆炸的datablock对象 ⚫ 由数个ParticleEmitterData、AudioProfile、 DebrisData分别指定用来模拟爆炸的各种粒子对象, 声音对象和碎片对象。 ⚫ 将分散对象组织起来,共同完成爆炸过程的模拟。 返回

深例倦职业波术学院 任务2.2 Shenzhen Institute ol Inform ation Technology 国家示范性软件学院 实现爆炸效果 。爆炸效果的实现 。素材 ●碎片残骸(debris.dts) ·烟尘(smoke.png) 。火焰(huo.png) 。飞散的火星(smoke.png) 数据集定义 口 返回
任务2.2 实现爆炸效果 ⚫ 爆炸效果的实现 ⚫ 素材 ⚫ 碎片残骸(debris.dts) ⚫ 烟尘(smoke.png) ⚫ 火焰(huo.png) ⚫ 飞散的火星(smoke.png) ⚫ 数据集定义 返回

深例包职世被术学院 任务2.2 Shenzhen Institute of Information Technology 国家示范性软件学院 实现爆炸效果 爆炸效果数据集定义 .datablock ParticleData(FuelExplosionSmoke)// .datablock ParticleData(FuelExplosionFire)// datablock ParticleData(FuelExplosionSparks)// datablock ParticleData(FuelDebris Trail)W碎片的飞散轨迹 .datablock ParticleEmitterData(FuelExplosionSmokeEmitter) .datablock ParticleEmitterData(FuelExplosionFireEmitter) .datablock ParticleEmitterData(FuelExplosionSparksEmitter) .datablock ParticleEmitterData(FuelDebrisTrailEmitter) datablock DebrisData(FuelExplosionDeris)//H datablock ExplosionData(FuelExplosion)// 口返回
任务2.2 实现爆炸效果 ⚫ 爆炸效果数据集定义 返回 •datablock ParticleData(FuelExplosionSmoke)//烟 •datablock ParticleData(FuelExplosionFire)//火 •datablock ParticleData(FuelExplosionSparks)//火星 •datablock ParticleData(FuelDebrisTrail)//碎片的飞散轨迹 •datablock ParticleEmitterData(FuelExplosionSmokeEmitter) •datablock ParticleEmitterData(FuelExplosionFireEmitter) •datablock ParticleEmitterData(FuelExplosionSparksEmitter) •datablock ParticleEmitterData(FuelDebrisTrailEmitter) •datablock DebrisData(FuelExplosionDeris)//碎片 •datablock ExplosionData(FuelExplosion)//爆炸

深例倦职业波术学院 任务2.2 Shenzhen Institute ol Inform ation Technology 国家示范性软件学院 实现爆炸效果 ● 爆炸函数 function Explode(%ob)1/输入参数:%obj给出被爆炸的对象 %ExplodeShape %obj; %boom new Explosion() datablock FuelExplosion; position %ExplodeShape.position; sourceObject=%ExplodeShape.sourceObject; sourceSlot =%ExplodeShape.sourceSlot; client =%ExplodeShape.client; }; echo(%boom.position); MissionCleanup.add(%boom); %ExplodeShape.schedule(500,"delete"); ▣ 返回
任务2.2 实现爆炸效果 ⚫ 爆炸函数 function Explode(%obj) //输入参数:%obj给出被爆炸的对象 { %ExplodeShape = %obj; %boom = new Explosion() { datablock = FuelExplosion; position = %ExplodeShape.position; sourceObject = %ExplodeShape.sourceObject; sourceSlot = %ExplodeShape.sourceSlot; client = %ExplodeShape.client; }; echo(%boom.position); MissionCleanup.add(%boom); %ExplodeShape.schedule(500,"delete"); } 返回

深例倦职业波术学院 任务2.2 Shenzhen Institute ol Inform ation Technology 国家示范性软件学院 实现爆炸效果 o..O 爆炸效果的检验 通过假宝检验爆炸效果的函数。 function Boulderltem:onCollision(%this,%obj,%col) { if(%obj.getName0$="jiaBao")/如果是假宝则产生爆炸并减5分 Explode(%obj); %client.score %client.score -5; } else ∥真宝则加3分 %client.score =%client.score 3; %obj.delete(); ☐ 返回
任务2.2 实现爆炸效果 ⚫ 爆炸效果的检验 通过假宝检验爆炸效果的函数。 function BoulderItem::onCollision(%this, %obj, %col) { … if (%obj.getName() $="jiaBao") //如果是假宝则产生爆炸并减5分 { Explode(%obj); %client.score = %client.score - 5; } else //真宝则加3分 { %client.score = %client.score + 3; %obj.delete(); } … } 返回