当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > Flash AS 3.0基础教程:物理基础之重力

Flash动画制作
用动作脚本动态创建和控制文本框 (1)
用动作脚本动态创建和控制文本框 (2)
用动作脚本动态创建和控制文本框 (3)
用动作脚本动态创建和控制文本框 (4)
用动作脚本动态创建和控制文本框 (5)
FW MX和Flash MX的亲密合作(1)
Flash中音量和左右声道平衡的控制(1)
Flash中音量和左右声道平衡的控制(3)
Flash入门互动教程:基本动画类型
Flash制作电子日历时钟(2)
Flash组件之旅(1):认识和使用(3)
Flash MX 2004新特性(1)
Flash中表现粗细变化笔触效果(1)
Flash中表现粗细变化笔触效果(2)
Flash中表现粗细变化笔触效果(3)
Flash MX Pro 2004新模板应用(1)
Flash MX Pro 2004新模板应用(2
Flash MX Pro 2004新模板应用(3)
Flash MX Pro 2004新模板应用(4)
Flash MX Pro 2004新模板应用(5)

Flash动画制作 中的 Flash AS 3.0基础教程:物理基础之重力


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-22   浏览: 62 ::
收藏到网摘: n/a

实现自由落体运动,需定义速度和加速度:
//变量gra表示重力产生的加速度
var gra:Number = 5;
//变量vy是初始速度
var vy:Number = 0;
//然后使用重力改变速度的公式
vy += gra;
//通过速度改变物体的位置
mc.y += vy;

完整的代码:
var gra:Number = 5;
var vy:Number = 0;
mc.addEventListener(Event.ENTER_FRAME,test);
function test(e:Event):void
{
vy += gra;
mc.y += vy;
}

测试上面的代码,看到物体刚开始静止,然后速度不断加快,实现了自由落体运动。但这个运动并不真实,当物体掉到地面时,给它一个反弹力,看起来就会真实一些。

如果物体的纵坐标大于等于stage.stagHeight - mc.height/2时,就相当于碰到了地面,地面会给物体反弹力。由于反弹力是竖直向上的,可用负值来表示。

加入反弹力的代码:
var gra:Number = 5;
var vy:Number = 0;

//反弹力是反弹加速度
var bounce:Number = -0.7;
mc.addEventListener(Event.ENTER_FRAME,test);
function test(e:Event):void
{
vy += gra;
mc.y += vy;

//如果mc的底部超出舞台的下边界
if (mc.y >= stage.stageHeight - mc.height / 2)
{

//使mc位于地面上
mc.y = stage.stageHeight - mc.height / 2)

//速度加上反弹加速度
vy *= bounce;
}
}