From 5520094baca6c2d5bfc3a0bb0fc3ea1b93d944a1 Mon Sep 17 00:00:00 2001 From: ericrius1 Date: Wed, 24 Feb 2016 12:29:54 -0800 Subject: [PATCH] exploding fireworks --- .../particle_explorer/particleExplorer.js | 4 +- .../fireworksLaunchButtonEntityScript.js | 87 ++++++++++++++++--- 2 files changed, 76 insertions(+), 15 deletions(-) diff --git a/examples/particle_explorer/particleExplorer.js b/examples/particle_explorer/particleExplorer.js index a3cfd32676..307e361ff1 100644 --- a/examples/particle_explorer/particleExplorer.js +++ b/examples/particle_explorer/particleExplorer.js @@ -43,10 +43,10 @@ var keysToAllow = [ 'emitSpeed', 'speedSpread', 'emitOrientation', - 'emitDimensios', - 'emitRadiusStart', + 'emitDimensions', 'polarStart', 'polarFinish', + 'azimuthStart', 'azimuthFinish', 'emitAcceleration', 'accelerationSpread', diff --git a/examples/playa/fireworks/fireworksLaunchButtonEntityScript.js b/examples/playa/fireworks/fireworksLaunchButtonEntityScript.js index 27c19f140f..a40327d7f5 100644 --- a/examples/playa/fireworks/fireworksLaunchButtonEntityScript.js +++ b/examples/playa/fireworks/fireworksLaunchButtonEntityScript.js @@ -29,9 +29,72 @@ }, shootFirework: function() { + var position = Vec3.sum(_this.position, {x: 0, y: 0.5, z: 0}); + _this.missle = Entities.addEntity({ + type: "Sphere", + position: position, + color: {red: 200, green : 10, blue: 200}, + dimensions: {x: 0.2, y: 0.4, z: 0.2}, + damping: 0, + dynamic: true, + velocity: {x: 0.0, y: 0.1, z: 0}, + gravity: {x: 0, y: 0.7, z: 0} + }); + + var smokeSettings = { + type: "ParticleEffect", + position: position, + name: "Smoke Trail", + maxParticles: 1000, + emitRate: 20, + emitSpeed: 0, + speedSpread: 0, + dimensions: {x: 1000, y: 1000, z: 1000}, + polarStart: 0, + polarFinish: 0, + azimuthStart: -3.14, + azimuthFinish: 3.14, + emitAcceleration: { + x: 0, + y: -0.5, + z: 0 + }, + accelerationSpread: { + x: 0.2, + y: 0, + z: 0.2 + }, + radiusSpread: 0.04, + particleRadius: 0.07, + radiusStart: 0.07, + radiusFinish: 0.07, + alpha: 0.7, + alphaSpread: 0, + alphaStart: 0, + alphaFinish: 0, + additiveBlending: 0, + textures: "https://hifi-public.s3.amazonaws.com/alan/Particles/Particle-Sprite-Smoke-1.png", + emitterShouldTrail: true, + parentID: _this.missle + }; + + _this.smoke = Entities.addEntity(smokeSettings); + + + Script.setTimeout(function() { + var explodePosition = Entities.getEntityProperties(_this.missle, "position").position; + Entities.deleteEntity(_this.missle); + Entities.deleteEntity(_this.smoke); + _this.explodeFirework(explodePosition); + }, 2500) + + + }, + + explodeFirework: function(explodePosition) { var fireworkSettings = { name: "fireworks emitter", - position: _this.position, + position: explodePosition, type: "ParticleEffect", color: { red: 205, @@ -50,12 +113,6 @@ z: 0, w: 0.7 }, - emitDimensions: { - x: 0, - y: 0, - z: 0 - }, - emitRadiusStart: 0.5, polarStart: 1, polarFinish: 1.2, azimuthStart: -Math.PI, @@ -72,8 +129,8 @@ }, particleRadius: 0.04, radiusSpread: 0, - radiusStart: 0.14, - radiusFinish: 0.14, + radiusStart: 0.06, + radiusFinish: 0.05, colorSpread: { red: 0, green: 0, @@ -92,11 +149,16 @@ alpha: 1, alphaSpread: 0, alphaStart: 0, - alphaFinish: 1, + alphaFinish: 0, textures: "https://hifi-public.s3.amazonaws.com/alan/Particles/spark_2.png", }; _this.firework = Entities.addEntity(fireworkSettings); + + Script.setTimeout(function() { + Entities.editEntity(_this.firework, {isEmitting: false}); + }, 1000) + }, preload: function(entityID) { @@ -107,9 +169,8 @@ }, unload: function() { - if (_this.firework) { - Entities.deleteEntity(_this.firework); - } + Entities.deleteEntity(_this.smoke); + Entities.deleteEntity(_this.missle); }