forked from: 避けられる!

by bradsedito forked from 避けられる! (diff: 13)
♥0 | Line 109 | Modified 2011-11-02 09:26:15 | MIT License
play

ActionScript3 source code

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

// forked from yuugurenote's 避けられる!
package {
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.geom.Rectangle;
    import flash.display.DisplayObject;
   
    [SWF(width=465,height=465,backgroundColor=0x000000,frameRate=60)] 

    public class Main110817_01 extends Sprite {
        public var sw:Number=stage.stageWidth;
        public var sh:Number=stage.stageHeight;
        public var max:Number=30;
        public var bg:Sprite;
        public var _myCircle:myCircle;
        public var _myCircle2:myCircle2;
        public var _myCircle2_Ar:Array=new Array  ;

        public function Main110817_01() 
        {
            bg = new Sprite();
            bg.width  = 465;
            bg.height = 465;
            bg.graphics.beginFill(0x000000,1);
            addChild( bg );   
            
            _myCircle=new myCircle  ;
            _myCircle.x=sw/2;
            _myCircle.y=sh/2;
            addChild(_myCircle);

            for (var i:Number=0; i<max; i++) {
                _myCircle2=new myCircle2  ;
                _myCircle2.x=Math.random()*sw;
                _myCircle2.y=Math.random()*sh;
                addChild(_myCircle2);
                _myCircle2_Ar.push(_myCircle2);
            }
            addEventListener(Event.ENTER_FRAME,xEnter2);
        }

        public function xEnter2(e:Event):void {
            for (var i:Number=0; i<_myCircle2_Ar.length; i++) {
                var rad:Number=Math.atan2(_myCircle2_Ar[i].y-_myCircle.y,_myCircle2_Ar[i].x-_myCircle.x);
                var dis:Number=Math.sqrt(Math.pow(_myCircle.x-_myCircle2_Ar[i].x,2)+Math.pow(_myCircle.y-_myCircle2_Ar[i].y,2));
                var per:Number=80/dis;
                _myCircle2_Ar[i].x+=per*Math.cos(rad);
                _myCircle2_Ar[i].y+=per*Math.sin(rad);
            }
        }

    }
}
import flash.display.Sprite;
import flash.events.Event;

class myCircle extends Sprite {
    public var radius:Number=10;
    public var speedX:Number=Math.random()*8;
    public var speedY:Number=Math.random()*6;

    public function myCircle() {
        graphics.lineStyle(1,0x999999,1,false,"none");
        graphics.drawCircle(0,0,radius);
        this.addEventListener(Event.ENTER_FRAME,xEnter);
    }
    private function xEnter(e:Event):void {

        this.x+=speedX;
        this.y+=speedY;

        if (this.x+radius>stage.stageWidth) {
            this.x=stage.stageWidth-radius;
            speedX=- speedX;
        }
        if (this.x-radius<0) {
            this.x=radius;
            speedX=- speedX;
        }
        if (this.y+radius>stage.stageHeight) {
            this.y=stage.stageHeight-radius;
            speedY=- speedY;
        }
        if (this.y-radius<0) {
            this.y=radius;
            speedY=- speedY;
        }
    }
}

class myCircle2 extends Sprite {
    public var radius:Number=5;
    public var speedX:Number=Math.random()*2;
    public var speedY:Number=Math.random()*3;

    public function myCircle2() {
        graphics.beginFill(0xCCCCCC,1);
        graphics.drawCircle(0,0,radius);
        graphics.endFill();
        this.addEventListener(Event.ENTER_FRAME,xEnter);
    }
    private function xEnter(e:Event):void {

        this.x+=speedX;
        this.y+=speedY;

        if (this.x+radius>stage.stageWidth) {
            this.x=stage.stageWidth-radius;
            speedX=- speedX;
        }
        if (this.x-radius<0) {
            this.x=radius;
            speedX=- speedX;
        }
        if (this.y+radius>stage.stageHeight) {
            this.y=stage.stageHeight-radius;
            speedY=- speedY;
        }
        if (this.y-radius<0) {
            this.y=radius;
            speedY=- speedY;
        }
    }
}