physx exercise
♥0 |
Line 44 |
Modified 2013-06-09 14:59:03 |
MIT License
archived:2017-03-20 05:28:11
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
}
}
}