Flash 与物理笔记:上抛运动

 学习Flash 学一点物理对flash有很大帮助,关于flash与运动学的一些知识在make thing move作者里面已经很详细提供了。物理来讲,个人学得比较差,中学时代基本上是物理白痴,毫无物理的思维。不得不重新去网站搜索一些概念去学回这种运动学。对于物理的介绍,不能去抛书包,只能记录一下笔记用作日后使用。

 

  上抛运动是一种常见的运行方式,分为两个运动过程,前者是匀减速的,后者是自由落体加速度。当中不考虑空气的阻力。具体的相关情况可以到这里查询:http://baike.baidu.com/view/560471.htm?fr=ala0_1

 

  在使用这个运动的环境当中,需要知道物体是只是受重力进行运动。因此需要设置一个加速度g 作为重力加速度的一个参数。随后定义一个时间t 和初始化上抛的速度值v0,以及位移S。

 

   这样就可以计算出vt=v0-gt 的速度,某一点的时速值,知道了速度和时间我们就可以计算出位移值S。

 

 初始化编程:

 var v0:Number=12;//向上的初速度
 var g:int=1;//重力加速度,物体只受重力的作用
 var vt:Number=0;//某一时间的速度值
 var t:Number=0;//时间

 

具体编程如下,

 

ball.y=ball.y+((g*t)-v0);
t++; //时间递增

 

在时间递增的过程,我们可以计算出速度和位移。由于定义g为正,所以g*t-v0(首先这个值是会呈现一个单调过程,从-12,-11,-10 ..0,1,2...,当我们这个值加上去位置的时候,他会位移会进行向上的移动,随着值变化,位置呈现出变化); 计算出某一点的速度值,然后加上位移上去,这样创建出的小球就能实现上抛的过程。这种方式很容易理解到。

 

其中ball 类是一个库连接的小球。这里可以自己添加,Ball类

 //初始化位置 var ball:Ball=new Ball(); addChild(ball); ball.x=250; ball.y=200; var v0:Number=12;//向上的初速度 var g:int=1;//重力加速度,物体只受重力的作用 var vt:Number=0; var t:Number=0; addEventListener(Event.ENTER_FRAME,Run); function Run(event:Event):void { // vt+=g; //匀加速运动 // // var temp:Number=vt-v0; // trace(temp); // ball.y+=temp; ball.y=ball.y+((g*t)-v0); t++; } //上抛运动

 

省去时间t 可以变化出这样,使用api 进行一个简单运行过程。

//S=S+((g*t)-v0); //t++; //分两个各过程,匀减速和自由落体 //初始化位置 var ball:MovieClip=new MovieClip(); ball.graphics.lineStyle(1); ball.graphics.drawCircle(0,0,50); addChild(ball); ball.x=250; ball.y=200; ball.vy=0 var v0:Number=12;//向上的初速度 var g:int=1;//重力加速度,物体只受重力的作用 var vt:Number=0; var t:Number=0; addEventListener(Event.ENTER_FRAME,Run); function Run(event:Event):void { vt+=g; //匀减速运动和自由落体 ball.vy=vt-v0; ball.y+= ball.vy; } //上抛运动

 

 

扩展:可以联系到下抛,和斜抛,这些对于学习物理的相关的运动学有帮助。

 

 

你可能感兴趣的:(flash,物理引擎,flash,function,编程,api,扩展)