“重力”和“弹性力”的实际运用
//利用重力做的一个自由落体运动/主要是加速度大小和方向的运用技巧
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;
}
}
}
浙公网安备 33010602011771号