physx exercise

by J.J
♥0 | Line 44 | Modified 2013-06-09 14:59:03 | MIT License
play

ActionScript3 source code

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

package {
    import flash.events.MouseEvent;
    import flash.events.Event;
    import flash.display.MovieClip;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        private var p:MovieClip
        private var w:uint,h:uint
        private var rad:Number=20,g:Number=3,m:Number=2,rho:Number=1.5,k:Number=.1,wl:Number,rat:Number,d:Number;
        public function FlashTest() {
            // write as3 code here..
            w=stage.stageWidth,h=stage.stageHeight;
            wl=h/2
            p=new MovieClip;
            with(p.graphics) beginFill(0x00),drawCircle(0,0,rad);
            p.vx=p.vy=1;
            addChild(p);
            var water:Sprite=new Sprite;
            with(water.graphics) beginFill(0x00),drawRect(0,wl,w,h)
            water.alpha=.8
            stage.addChild(water)
            stage.addEventListener(MouseEvent.MOUSE_DOWN,onM_D)
            stage.addEventListener("enterFrame",loop);
        }
        private function onM_D(e:MouseEvent):void{
            stage.removeEventListener("enterFrame",loop);
            p.startDrag()
            stage.addEventListener(MouseEvent.MOUSE_UP,onUP)
        }
        private function onUP(e:MouseEvent):void{
           p.stopDrag()
            stage.addEventListener("enterFrame",loop);
         }
        private function loop(e:Event):void{
            d=(p.y-wl)/rad;
            rat=d<1?.25*d*(3-d*d)+.5:1;
            rat=d<-1?0:rat;
            p.vy+=g/m-rho*rat*g-rat*k*p.vy;
            p.y+=p.vy;
            p.x+=p.vx;
            if(p.y>h || p.y<0) p.vy*=-1
            if(p.x>w || p.x<0) p.vx*=-1
        }
    }
}