Particle & Line Click! gameegg forked:2favorite:11lines:79license : MIT License modified : 2012-08-04 19:41:20 Embed Tweet package { import flash.events.Event; import flash.events.MouseEvent; import flash.display.Sprite; public class ParticleLine extends Sprite { private var space:Sprite; private var dotVector:Vector.<Dot> = new Vector.<Dot>(); public function ParticleLine() { space = new Sprite(); addChild(space); graphics.beginFill(0x0); graphics.drawRect(0,0,465,465); addEventListener("enterFrame",ef); for(var k:int=0; k< 10; ++k){ var dot:Dot = new Dot(Math.random()*465,Math.random()*465,Math.random()*2-1,Math.random()*2-1); dotVector.push(dot); } stage.addEventListener(MouseEvent.CLICK,mc) } private function ef(e:Event):void { space.graphics.clear(); for(var i:int = 1; i < dotVector.length; ++i) { var doti:Dot = dotVector[i]; doti.update(); for(var j:int = 0; j < i; ++j) { var dotj:Dot = dotVector[j]; var r:Number = pit(doti.x,doti.y,dotj.x,dotj.y); space.graphics.lineStyle(100/r,0xffffff,70/r); if(100/r > 3) space.graphics.lineStyle(3,0xffffff,70/r); space.graphics.moveTo(doti.x,doti.y); space.graphics.lineTo(dotj.x,dotj.y); doti.sx -= (doti.sx-dotj.sy)/10; doti.sy -= (doti.sx-dotj.sy)/10; dotj.sx += (doti.sx-dotj.sy)/10; dotj.sy += (doti.sx-dotj.sy)/10; } } } private function mc(e:MouseEvent):void { var mcDot:Dot = new Dot(mouseX,mouseY,0,0); dotVector.push(mcDot); } private function pit(a:Number,b:Number,c:Number,d:Number):Number { return Math.sqrt((a-c)*(a-c)+(b-d)*(b-d)); } } } internal class Dot { public var x:Number; public var y:Number; public var sx:Number=0; public var sy:Number=0; public var ax:Number=0; public var ay:Number=0; public function Dot(ix:Number,iy:Number,isx:Number = 0,isy:Number = 0) { x = ix; y = iy; sx = isx; sy = isy; ax = Math.random()*2-1; ay = Math.random()*2-1; } public function update():void { sx += ax; sy += ay x += sx; y += sy; sx *= 0.5; sy *= 0.5; if(ax > 3) ax = 3; else if(ax < -3) ax = -3; if(ay > 3) ay = 3; else if(ay < -3) ay = -3; if(x < 0) ax +=0.1; else if(x > 465) ax -=0.1; if(y < 0) ay +=0.1; else if(y > 465) ay -=0.1; } } Code Fullscreen Preview Fullscreen arkcocco tjoen atakanckilic.. smallwind191.. Nyarineko hacker_aft9c.. fallen bradsedito xor djankey hidrodixtion.. : coolmathparticles cool math particles mouseY push mouseX MouseEvent.CLICK Math.sqrt addEventListener MouseEvent length Math.random addChild Vector Sprite int Number sort new page view favorite forked pv0 forked from: Particle & Line notwenty forked:0 favorite:0lines:79 (diff:1) pv97 forked from: Particle & Line notwenty forked:0 favorite:0lines:79 (diff:1)