Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Action script...
- // [Action in Frame 1]
- function createParticle(x, y, angle, power)
- {
- var _loc1 = new Object();
- _loc1.x = x;
- _loc1.y = y;
- _loc1._initTime = getTimer();
- _loc1.exploded = false;
- _loc1.fArr = new Array();
- angle = -angle;
- power = -power / 2 + power + power;
- _loc1.vx = Math.cos(angle) * power;
- _loc1.vy = -Math.sin(angle) * power;
- return (_loc1);
- } // End of the function
- function positionParticle(particle)
- {
- var _loc2 = Math.floor((getTimer() - particle._initTime) / 1000);
- particle.x = particle.x + particle.vx;
- particle.y = particle.y + particle.vy;
- if (particle.y > floor)
- {
- makeExplode(particle);
- fired = false;
- } // end if
- particle.vy = particle.vy + gravity;
- particle.vy = particle.vy * res;
- particle.vx = particle.vx * res;
- if (_loc2 >= 2)
- {
- if (particle.exploded == false)
- {
- particle.fArr = makeExplode(particle, 100);
- --fw_num;
- particle.exploded = true;
- } // end if
- false;
- } // end if
- } // End of the function
- function makeExplode(particle, num)
- {
- var _loc1 = new Array();
- for (i = 0; i < num; i++)
- {
- _loc1[i] = makeExplode_frag(particle);
- } // end of for
- return (_loc1);
- } // End of the function
- function makeExplode_frag(particle)
- {
- var _loc1 = new Object();
- _loc1.det = false;
- _loc1._initTime = getTimer();
- _loc1._dieTime = 2000 + random(2000);
- _loc1.x = particle.x;
- _loc1.y = particle.y;
- angle = Math.random() * 6.283185;
- power = 1 + Math.random() * 4;
- _loc1.vx = Math.cos(angle) * power;
- _loc1.vy = -Math.sin(angle) * power;
- return (_loc1);
- } // End of the function
- function makeExplode_move(frag)
- {
- frag.fTime = Math.floor(getTimer() - frag._initTime);
- frag.x = frag.x + frag.vx;
- frag.y = frag.y + frag.vy;
- frag.vy = frag.vy + gravity / 2;
- frag.vy = frag.vy * res;
- frag.vx = frag.vx * res;
- fw_bit.setPixel32(frag.x, frag.y, particlecolor);
- if (frag.fTime >= frag._dieTime)
- {
- if (frag.det == false)
- {
- frag.det = true;
- } // end if
- } // end if
- } // End of the function
- Stage.scaleMode = "noScale";
- var bg_bit = new flash.display.BitmapData(Stage.width, Stage.height, false, 0);
- var bg_mc = _root.createEmptyMovieClip("bg_mc", _root.getNextHighestDepth());
- bg_mc.attachBitmap(bg_bit, this.getNextHighestDepth());
- var fw_bit = new flash.display.BitmapData(Stage.width, Stage.height, true);
- var fw_mc = _root.createEmptyMovieClip("fw_mc", _root.getNextHighestDepth());
- fw_mc.attachBitmap(fw_bit, this.getNextHighestDepth());
- var baseMatrix = new flash.geom.Matrix();
- var fade = new flash.geom.ColorTransform();
- fade.alphaMultiplier = 0.900000;
- var fired = false;
- var floor = 375;
- var launch = new flash.geom.Point(Stage.width / 2, floor);
- var gravity = 0.020000;
- var res = 0.970000;
- var max_fw = 3;
- var particlecolor = 4294967295.000000;
- var particleglowcolor = 65280;
- var particles = new Array();
- var glow = new flash.filters.GlowFilter(particleglowcolor, 10, 10, 10, 10);
- var fw_num = 0;
- fw_mc.filters = [glow];
- fw_mc.blendMode = "add";
- onEnterFrame = function ()
- {
- if (fw_num < max_fw)
- {
- fw_mc.onPress = function ()
- {
- ++fw_num;
- var _loc1 = new flash.geom.Point(_xmouse, _ymouse);
- var _loc2 = Math.atan2(_loc1.y - launch.y, _loc1.x - launch.x);
- var _loc3 = flash.geom.Point.distance(launch, _loc1) / 45;
- particles.unshift(createParticle(launch.x, floor, _loc2, _loc3));
- if (particles.length > max_fw)
- {
- particles.length = max_fw;
- } // end if
- };
- }
- else
- {
- delete fw_mc.onPress;
- } // end else if
- fw_bit.colorTransform(fw_bit.rectangle, fade);
- for (i in particles)
- {
- currparticle = particles[i];
- fw_bit.setPixel32(currparticle.x, currparticle.y, particlecolor);
- positionParticle(currparticle);
- for (j in currparticle.fArr)
- {
- makeExplode_move(currparticle.fArr[j]);
- if (currparticle.fArr[j].det == true)
- {
- currparticle.fArr[j] = null;
- } // end if
- } // end of for...in
- if (currparticle.exploded == true)
- {
- currparticle.x = Stage.width * 2;
- currparticle.y = Stage.height * 2;
- } // end if
- } // end of for...in
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement