flash as3.0编程:用数组生成10个小球做自由落体运动,然后到达舞台底部反弹
答案:1 悬赏:30 手机版
解决时间 2021-02-24 03:35
- 提问者网友:美人性情
- 2021-02-23 09:19
flash as3.0编程:用数组生成10个小球做自由落体运动,然后到达舞台底部反弹
最佳答案
- 五星知识达人网友:枭雄戏美人
- 2021-02-23 10:10
模拟自由落体运动说难也难,说简单也简单,看你想达到什么效果。如果考虑到下落物体的质量、密度、弹力(硬度)与空气阻力,下落到达物体的硬度及摩擦力、角度等,这就比较难,你可学习下Box2D物理引擎。
不过看到这儿还是给你个简单的实例参考下:
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轴值变化。
}
不过看到这儿还是给你个简单的实例参考下:
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轴值变化。
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯