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

用数组生成10个小球做自由落体运动,然后到达舞台底部反弹,请各位大神指点一下代码急用... 用数组生成10个小球做自由落体运动,然后到达舞台底部反弹,请各位大神指点一下代码
急用
展开
 我来答
他是上善若水
2017-03-03 · TA获得超过285个赞
知道小有建树答主
回答量:311
采纳率:84%
帮助的人:137万
展开全部

模拟自由落体运动说难也难,说简单也简单,看你想达到什么效果。如果考虑到下落物体的质量、密度、弹力(硬度)与空气阻力,下落到达物体的硬度及摩擦力、角度等,这就比较难,你可学习下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轴值变化。


}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式