整列する四角形

by yuugurenote
斜めに整列?することもあります。
♥0 | Line 41 | Modified 2011-06-24 06:03:46 | MIT License
play

ActionScript3 source code

/**
 * Copyright yuugurenote ( http://wonderfl.net/user/yuugurenote )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/b0iz
 */

package {
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.events.Event;
    import flash.utils.Timer;
    import flash.events.TimerEvent;
     [SWF(width=465,height=465,backgroundColor=0xFFFFFF,frameRate=60)]
    public class Main extends Sprite {
        //プロパティの宣言
        var sw:Number = stage.stageWidth;
        var sh:Number = stage.stageHeight;
        var speed:Number = 0.1;
        var max:Number = 20;
        var myArray:Array = new Array();

        function Main() {
            //コンストラクタ
            for (var i:Number =0; i<max; i++) {
                var mySprite:Sprite = mySprite = new Sprite();
                mySprite.graphics.beginFill(0xCCCCCC,1);
                mySprite.graphics.drawRect(0,0,10,10);
                mySprite.graphics.endFill();
                mySprite.x = Math.random() * sw;
                mySprite.y = Math.random() * sh;
                addChild(mySprite);
                myArray.push(mySprite);
                myArray[i].addEventListener(Event.ENTER_FRAME,xEnter);
            }
        }
        function xEnter(e:Event):void {
            //動作
            var r:Number;
            for (var i:Number=0; i<max; i++) {
                if (i==0) {
                    r= Math.atan2(mouseY-myArray[i].y,mouseX-myArray[i].x)*180/Math.PI;
                    myArray[i].x += speed*Math.cos(r/180*Math.PI);
                    myArray[i].y += speed*Math.sin(r/180*Math.PI);
                } else {
                    myArray[i].x += (myArray[i-1].x - myArray[i].x)/100;
                    myArray[i].y += (myArray[i-1].y - myArray[i].y)/100;
                }
            }
        }
    }
}