flash as3.0编程:用数组生成10个小球做自由落体运动,然后到达舞台底部反弹

用数组生成10个小球做自由落体运动,然后到达舞台底部反弹,请各位大神指点一下代码
急用

模拟自由落体运动说难也难,说简单也简单,看你想达到什么效果。如果考虑到下落物体的质量、密度、弹力(硬度)与空气阻力,下落到达物体的硬度及摩擦力、角度等,这就比较难,你可学习下Box2D物理引擎。

不过看到这儿还是给你个简单的实例参考下:

/*-----------------复制10个小球---------------------
**先做一个小球元件(影片剪辑)AS链接为 ball
**注:不用将小球拖至舞台上。
*/
for (var i:int=0; i<10; i++)
{
var bal:ball=new ball();//将库元件实例化
bal.x = stage.stageWidth / 10 * i;//实例初始位置X坐标
bal.y = 5;//实例初始位置Y坐标
addChild(bal);//加入显示列表

bal.addEventListener(Event.ENTER_FRAME,balMove);//帧频侦听函数
}

/*----------------构建侦听函数----------------*/
function balMove(e:Event):void
{

var bal:ball = e.target as ball;//传递转换

if (bal.y < stage.stageHeight-bal.height)
{
//根据物理学,V平方=2gh 公式计算,( 1米=30象素,g=10,1秒24帧)
bal.v=Math.sqrt(2 * 10 * (bal.y * 30))/24;

}
else
{
bal.v=-bal.v*.8;//简单模拟,并不科学,详见Box2D物理引擎!

}
bal.y +=  bal.v;//Y轴值变化。


}

温馨提示:答案为网友推荐,仅供参考
相似回答