龚小老徐的博客  
时 间 记 忆
最 新 评 论
专 题 分 类
最 新 日 志
最 新 留 言
搜 索
用 户 登 录
友 情 连 接
博 客 信 息


 
物体运动(三)
[ 2008-11-18 11:05:00 | By: xshxsh ]
 

首先启动Macromedia Flash 8,单击主场景中的主时间轴,打开代码输入面板,先输入如下代码:
stop();
a2=a3=0;//二个输入变量的初始值设为零。
//判断运动物体是否经过除起点以外的另三个点的变量。初始值均设为零,运动物体经过该点后,值变为一。
_root.xxt03=0;
_root.xxt04=0;
_root.xxt05=0;
然后定义一个获取各种数据的函数,在每一次输入了新的距离、角度和选择了方向后,这些数据要及时进行传输,代码如下:
function init(){
a10=cbcom.getValue();//获取使用者在下拉列表中选取了什么方向。
 a20=a2;//获取使用者输入的角度数据。
 a30=Number(a3)*1.5;//获取使用者输入的距离数据。
 if((a20==Number(a20))||(a30=Number(a30))){//如果使用者输入的数据是数值。
 x1=Math.floor(_root.ren0._x);//获取运动物体的当前X坐标值。
 y1=Math.floor(_root.ren0._y);//获取运动物体的当前Y坐标值。
 speed=5;//运动物体的速度。
 }else{//如果使用者输入的数据不是数值。

 a40="请输入数字!";//出现提示语句。
 a2=30;//赋予角度变量默认值。
 a3=200;//赋予距离变量默认值。
}
};
//定义一个向东偏北运动的函数
function xshdb(){
//根据使用者输入的距离计算出每一次运动的终点X坐标和Y坐标。
 x2=Math.floor(a30*Math.cos(angle)+x1);
 y2=Math.floor(y1-a30*Math.sin(angle));
        //按帧频调用下列动作。
 onEnterFrame=function(){
 vx=Math.floor(Math.cos(angle)*speed);//X方向的运动速度。
 vy=Math.floor(Math.sin(angle)*speed);//Y方向的运动速度。
 _root.ren0._x  +=vx;//运动物体的X坐标值不断增加。
 _root.ren0._y  -=vy;//运动物体的Y坐标值不断减少。因为显示器的坐标原点是在左上角。
 if((_root.ren0._x>=x2)&&(_root.ren0._y<=y2)){//如果运动物体到了本次的终点,
  myhitTest();//调用碰撞检测函数
  _root.xymc02._x=_root.ren0._x;//把活动坐标移到运动物体现在的位置。
  _root.xymc02._y=_root.ren0._y;
  delete onEnterFrame//删除按帧频调用。
 }
}
}

 
  • 圈子:七色风 
  • 发表评论:
    Powered by Oblog.