forked from: 引力・斥力2
forked from 引力・斥力2 (diff: 9)
ActionScript3 source code
/**
* Copyright gs1mm0ns ( http://wonderfl.net/user/gs1mm0ns )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/sqzy
*/
// forked from cpu_t's 引力・斥力2
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.Event;
public class FlashTest extends Sprite
{
public function FlashTest()
{
graphics.beginFill(0xCC22);
graphics.drawRect(0,0,stage.stageWidth,stage.stageHeight);
stage.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownHandler);
nodelist=new Array();
addEventListener(Event.ENTER_FRAME,enterFrameHandler);
}
private var nodelist:Array;
private function mouseDownHandler(e:MouseEvent):void
{
var node:Node=new Node();
addChild(node);
node.x=mouseX;
node.y=mouseY;
nodelist.push(node);
nodedis+=2;
}
private var nodedis:Number=30;
private function enterFrameHandler(e:Event):void
{
var node:Node;
for each(node in nodelist)
{
node.vx*=0.7;node.vy*=0.7;
node.vx+=(stage.stageWidth/2-node.x)*0.01;
node.vy+=(stage.stageHeight/2-node.y)*0.01;
for each(var node2:Node in nodelist)
{
if(node==node2)continue;
var dis:Number=Math.sqrt((node2.x-node.x)*(node2.x-node.x)+(node2.y-node.y)*(node2.y-node.y));
node.vx+=(node2.x-node.x)/dis*(dis-nodedis)*0.01;
node.vy+=(node2.y-node.y)/dis*(dis-nodedis)*0.01;
}
}
for each(node in nodelist)
{
node.x+=node.vx;
node.y+=node.vy;
}
}
}
}
import flash.display.Sprite;
import flash.filters.BlurFilter;
class Node extends Sprite
{
public function Node()
{
graphics.beginFill(0xFFFFFF);
graphics.drawCircle(0,0, Math.random()+Math.random()*14);
}
private static var bFilter:BlurFilter=new BlurFilter();
public var vx:Number=0;
public var vy:Number=0;
}
