Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 软件时空 > 工具软件 > Flash中的物理运动知识(3)
【标  题】:Flash中的物理运动知识(3)
【关键字】:Flash,Flash
【来  源】:网络

Flash中的物理运动知识(3)

Your Ad Here

弹性中的能量损失

  在上面的例子,小球在回弹时我们设定当碰到边界时直接回弹,也就是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;
vx=10;
vy=10;
onEnterFrame=function(){
    vx*=fraction;
    vy*=fraction;
    my_mc._x+=vx;
    my_mc._y+=vy;
}

  演示:

 

6.拖动与抛

  拖动与抛实际是与上面的例子的结合应用,这里只是说明如何与上面相结合使用。在本例中我们想要在拖动小球的小球停止运动,松开或抛出时小球继续运动,在制作之前,我们先看一下基础知识:

  要点:拖动我们使用方法startDrag(),同时要禁止小球运动,当拖动时要注意小球的运动速度变化,松开时,使用方法stopDrag(),同时重置速度,然后小球继续运动。

  代码:

top=0;
left=0;
right=400;
bottom=300;
garv=.5;
vx = 10;
vy = 10;
onEnterFrame = function () {
//设定如果没有拖动则小球正常进行带有能量损失的弹性运动
 if(!dragging){
 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;
 }
//如果有拖动,则此时速度发生了变化,需要记录下最后my_mc的位置和当前my_mc的位置,两者的差为当前的速度。
 }else{
  vx=my_mc._x-oldx;
  vy=my_mc._y-oldy;
  oldx=my_mc._x;
  oldy=my_mc._y;
 }
   
};
my_mc.onPress=function(){
 this.startDrag();
 dragging=true;
}
my_mc.onRelease=function(){
 this.stopDrag();
 dragging=false;
}

  演示:

Flash中的物理运动知识(4):【上一篇】
Flash中的物理运动知识(2):【下一篇】
【相关文章】
  • Flash中的物理运动知识(4)
  • Flash加载外部文件
  • FLASH可以对数据进行保存
  • 利用flash判断你的e-mail合法性
  • Flash 实用编程百例解读
  • 实例学用Flash MX增强的AS功能
  • 用flash动作脚本动态创建和控制文本框
  • Flash MX的AS绘图和时间控制
  • Flash Action Script从头说起
  • flash action 详解 第2章: 变量及数据类型---变量---定义变量
  • 【随机文章】
  • GoLive 5教程 2.3 格式化处理文本
  • Why use sort() when we have "good old qsort()"?
  • 阻止垃圾邮件蔓延
  • BufferedReader
  • 如何手动设置和修改X-Window的显示模式(一)
  • J2SE5.0的新特性:ProcessBuilder
  • 光以太网的主要技术特点和应用
  • 利用VMWARE GSX虚拟实现Win2003集群及MsSql2k集群(故障转移)(1)
  • 找回失踪的下载提示框
  • Torque的VS2005编译 (compiling Torque by VS2005)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.