“重力”和“弹性力”的实际运用

//利用重力做的一个自由落体运动/主要是加速度大小和方向的运用技巧

import flash.events.Event;

var gra:Number=0.5;
var vy:Number=0;
//反弹力是反弹加速度
var bounce:Number=-0.7;
var bounce1:Number=-0.4;
mc.addEventListener(Event.ENTER_FRAME,onmc);
function onmc(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;
 }
 

}

 

//运用弹性力做的一个实例主要是计算和改变加速度。

package  {
 
 import flash.display.MovieClip;
 import flash.events.Event;
 
 
 public class Main extends MovieClip {
  
  private var addSpeedX:Number;
  private var addSpeedY:Number;
  private var zhongJianWeiZhiX:Number;
  private var zhongJianWeiZhiY:Number;
  private var ChuShiSpeedX:Number;
  private var ChuShiSpeedY:Number;
  
  public function Main() {
   // constructor code
   addSpeedX=0;//X的加速度
   addSpeedY=0;
   zhongJianWeiZhiX=200;//往返运动的中间位置
   zhongJianWeiZhiY=200;
   ChuShiSpeedX=-10;//设置任意的初始速度
   ChuShiSpeedY=-10;
   mc.addEventListener(Event.ENTER_FRAME,myMcMoveHandler);
  }
  private function myMcMoveHandler(e:Event):void
  {
   //根据中间位置和物体的坐标计算加速度
   addSpeedX=(zhongJianWeiZhiX-mc.x)*0.1;
   addSpeedY=(zhongJianWeiZhiY-mc.x)*0.1;
//   addSpeedX=zhongJianWeiZhiX-mc.x;
//   addSpeedY=zhongJianWeiZhiY-mc.x;
   ChuShiSpeedX+=addSpeedX;
   ChuShiSpeedY+=addSpeedY;
   mc.x+=ChuShiSpeedX;
   mc.y+=ChuShiSpeedY;
   
  }
 }
 
}

posted on 2012-10-05 23:30  笔墨丹青  阅读(297)  评论(0)    收藏  举报

导航