flash as3.0编程:用数组生成10个小球做自由落体运动,然后到达舞台底部反弹
1个回答
展开全部
模拟自由落体运动说难也难,说简单也简单,看你想达到什么效果。如果考虑到下落物体的质量、密度、弹力(硬度)与空气阻力,下落到达物体的硬度及摩擦力、角度等,这就比较难,你可学习下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轴值变化。
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询