package cn.d
{
import flash.display.Sprite;
import flash.events.Event;
public class Billiard1 extends Sprite
{
private var ball10:Ball;
private var ball11:Ball
public function Billiard1()
{
init();
}
private function init():void
{
ball10=new Ball(20);
ball10.x=50;
ball10.y=stage.stageHeight/2;
ball10.mass=2;
ball10.vx=1;
this.addChild(ball10)
ball11=new Ball(30);
ball11.x=300;
ball11.y=stage.stageHeight/2;
ball11.mass=1;
ball11.vx=-1;
this.addChild(ball11)
this.addEventListener(Event.ENTER_FRAME,onEnterFrame);
}
private function onEnterFrame(e:Event):void
{
ball10.x+=ball10.vx;
ball11.x+=ball11.vx;
var dic:Number=ball11.x-ball10.x;
if(Math.abs(dic)<ball10.radius+ball11.radius)
{
var v0:Number=((ball10.mass-ball11.mass)*ball10.vx+2*ball11.mass*ball11.vx)/(ball10.mass+ball11.mass);
var v1:Number=((ball11.mass-ball10.mass)*ball11.vx+2*ball10.mass*ball10.vx)/(ball10.mass+ball11.mass);
ball10.vx=v0;
ball11.vx=v1;
ball10.x+=ball10.vx;
ball11.y+=ball11.vy;
}
}
}
}