*注意:上面代码中的my_mc._x,my_mc._y的坐标都是指my_mc的中心点,也就是说my_mc的注册点在中心,如果你在制作过程中发现与本演示不同,那一定是你的my_mc注册点没有在中心上。
弹性中的能量损失
在上面的例子,小球在回弹时我们设定当碰到边界时直接回弹,也就是vx*=-1;并没有能量的损失,但在现实生活中,小球在回弹时要有一定的能量损失,其中还要有重力加速度的影响,通过上面的例子我们可以得出结论,当回弹速度设为1时无能量损失,其中的负号只是代表方向,当小于1时会产生能量损失,也就是我们通常说的摩擦,如:vx*=-0.8;同时不要忘了在现实生活小球还会受重力加速度的影响。
代码:
top=0; left=0; right=400; bottom=300; //设定重力加速度变量garv garv=.5; vx = 10; vy = 10; onEnterFrame = function () { //y轴方向的加速度 vy+=garv; my_mc._x += vx; my_mc._y += vy; if(my_mc._x+my_mc._width/2>right){ my_mc._x=right-my_mc._width/2; vx*=-0.8; } if(my_mc._x-my_mc._width/2<left){ my_mc._x=left+my_mc._width/2; vx*=-0.8; } if(my_mc._y-my_mc._height/2<top){ my_mc._y=top+my_mc._height/2; vy*=-0.8; } if(my_mc._y+my_mc._height/2>bottom){ my_mc._y=bottom-my_mc._height/2; vy*=-0.8; } };
演示:
5.摩擦力
摩擦力的应用相对比较简单,我们需要定义一个摩擦系数,通常它的值为小于1,然后将它与速度相乘,也就是前面在弹性时所提到的能量损失。
代码:
fraction=0.95;
上一篇:Flash 8.0前瞻——揭开8 ball的薄面纱
下一篇:Flash视觉特效实例之花样年华
|