抛物线运动公式总结

竖直上抛运动:
初始化
    t = 0;
    a = 1;
    v0 = 10;

帧事件
    _y  = (_y + ((a * t) - v0));
    t++;

平抛运动:
//初始化
x0=_x; 
y0=_y;//初使位置
v=0; //球的速度
rad=0;//球的角度,初使值为0
t=0;        //运动时间
dragtime=0; //小球开始拖动的时间;
isdrag=0; //判断球是否被拖动的变量;
isout=0;//判断球是否抛出去了
g=-0.098;//地心的引力常量

onClipEvent(mouseDown){//当鼠标按下
if(hitTest(_root._xmouse,_root._ymouse,true)){//判断鼠标是否和小球接触
  isdrag=1;//如果接触的话,就返回isdrag的值为1,目的只是用来做记号,告诉后面的程序执行相关的事件;
  isout=0;
  v=0;
  rad=0;
  this.startDrag();//开始拖动
  dragtime=getTimer();//获得拖动的时间
  }
}

onClipEvent(mouseUp){//松开鼠标
if(isdrag==1){
  isdrag=0;
  isout=1;
  t=1;
  rad=Math.atan2(_y-y0,_x-x0);//弧度为单位计算并返回 y/x 的反正切
  v=Math.sqrt((_x-x0)*(_x-x0)+(_y-y0)*(_y-y0))/(getTimer()-dragtime);
  //勾股定理,再用公式:v=s/t求出速度;
  this.stopDrag();//停止拖动
}
}

onClipEvent(enterFrame){//进入贞,MC的Frame不断运行
if(isout==1){
  _x+=v*Math.cos(rad)*t;
  _y+=v*Math.sin(rad)*t-(g*t*t)/2;//见图解(平抛运动的公式)
  t++;//t=t+1;
  if(_x>800 or _y>400 ){//如果超出舞台的范围,就重设置MC的位置
   isout=0;
   _x=x0;
   _y=y0;
  }



斜抛运动:

onClipEvent (load) {
    t = 0;
    a = 1;
    v0 = 10;
}
onClipEvent (enterFrame) {
    _x  = (_x + v0);
    _y  = (_y + ((a * t) - v0));
    t++;
}
}
}



你可能感兴趣的:(总结)