Space Comet Hasufel forked:2favorite:23lines:94license : MIT License modified : 2011-12-11 13:53:42 Embed Tweet package { import flash.display.Sprite; import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.display.StageQuality; import flash.events.Event; import flash.filters.BlurFilter; import flash.geom.Point; import flash.geom.Rectangle; import net.hires.debug.Stats; [SWF(width=465, height=465, backgroundColor=0x000000, frameRate=60)] public class spaceComet extends Sprite { private var cvs:BitmapData; private var particles:Array = []; private var stars:Array = []; private var cols:Array = [0xffffffff,0xffffcdff,0xffbebebe,0xffc7c7c7,0xffaaaaaa]; private var h:int = stage.stageHeight; private var w:int = stage.stageWidth; private var w2:int = Math.round(w/2); private var h2:int = Math.round(h/2); private var c:uint = 0xffffcc00; private var theta:Number = 0; private var blur:BlurFilter; public function spaceComet(){ stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.quality = StageQuality.LOW; var blackBg:Bitmap = new Bitmap(new BitmapData(465,465,false,0x000000)); addChild(blackBg); addChild(new Stats()); blur = new BlurFilter(14,14,1); cvs = new BitmapData(w,h,true,0); addChild(new Bitmap(cvs)) as Bitmap; addEventListener(Event.ENTER_FRAME,update); } private function update(e:Event):void{ cvs.applyFilter(cvs,cvs.rect,new Point(0,0),blur); cvs.lock(); var n:int = particles.length; while(n--) { var p:Particle = particles[n]; p.vx*=1.1; p.vy*=1.1; p.x+=p.vx; p.y+=p.vy; cvs.setPixel32(p.x,p.y,p.c); if (p.y<0 || p.y>h || p.x<0 || p.x>w){ particles.splice(n,1); } } var o:int = stars.length; while(o--) { var s:Particle = stars[o]; s.x+=s.vx*=1.03; s.y+=s.vy*=1.03; cvs.setPixel32(s.x,s.y,s.c); if (s.y<0 || s.y>h || s.x<0 || s.x>w){ stars.splice(o,1); } } cvs.unlock(); n = 100; while (n--) { createParticle(w2,h2,c,Math.cos(theta)+.8*Math.random()-.1,Math.sin(theta)+.8*Math.random()-.1,true); } o=20; while (o--) { createParticle(Math.random()*w,Math.random()*h,cols[randomNumber(0,4)],Math.cos(theta)+.1*Math.random()-.1,Math.sin(theta)+.1*Math.random()-.1,false); } theta+=.005; } private function createParticle(xx:Number, yy:Number, c:int, vx:Number, vy:Number, type:Boolean):void { var p:Particle = new Particle(); p.x = xx; p.y = yy; p.vx = vx; p.vy = vy; p.c = c; if (type) {particles.push(p);} else {stars.push(p);} } private function randomNumber(low:int, high:int):int{ return Math.round(Math.random() * (high - low) + low); } } } class Particle { public var x:Number; public var y:Number; public var vx:Number; public var vy:Number; public var c:uint; } Code Fullscreen Preview Fullscreen gaziya tjoen bagabagashii.. korooooon mita matacat tkinjo shevchenko narutohyper siouxcitizen.. OKASUKE cjcat2266 chieinoue digitrick Hiiragi CrazySam : blurparticles,Great tutorial sleepysafe : particlestardust bu_kala : shooting star jerryrom : particlestardust kitsionchen : 宇宙 juicebb : bitmapParticle a440hlz : beautiflparticle clockmaker : 宇宙 beautifl bitmap bitmapdata blur particle particles particles, setpixel32 stardust type Math.round quality StageQuality.LOW BlurFilter Stats splice Math.cos Math.sin Event.ENTER_FRAME push Math.random length Event Boolean Array uint int Number sort new page view favorite forked pv132 forked from: Space Comet say0 forked:0 favorite:0lines:92 (diff:90) pv3642 Waterfall jerryrom forked:8 favorite:19lines:78 (diff:122) tag: BitmapData effect particle particles パーティクル