当前位置:首页 > 设计在线 > 平面动画 > Flash > 模拟球的运动

模拟球的运动

点击次数:31 次 发布日期:2008-11-29 21:23:07 作者:源代码网
源代码网推荐

源代码网整理以下

  模拟球的运动:

代码如下:

//y轴方向的速度 
var ymov:Number = 0;
//X轴方向的速度

var xmov:Number = 0;
//重力加速度
var gravity:Number = 0.88;
//复制一个透明的球,让这个球跟随原球,利用两球的距离计算球的速度
duplicateMovieClip("ball", "ball_follow", 1);
ball_follow._alpha = 0;
_root.attachMovie("hand", "Hand", 2);
Hand.startDrag(true);
_root.onEnterFrame = function() {
 Mouse.hide();
 Shadow._x = ball._x-11;
//用缓冲的方式设置复制的球跟随原球
 ball_follow._x += (ball._x-ball_follow._x)*0.2;
 ball_follow._y += (ball._y-ball_follow._y)*0.2;
//设置影子的透明度和宽度
 Shadow._alpha = 100-(Shadow._y-ball._y);
 Shadow._width = 59+(Shadow._y-ball._y);
 ball.onPress = function() {
  Hand.gotoAndStop(2);
  x = ball._x-_xmouse;
  y = ball._y-_ymouse;
  leave = true;
 };
 ball.onRelease = function() {
  Release();
 };
 ball.onReleaseOutside = function() {
  Release();
 };
//设置球的反弹
 if (leave) {
  ball._x = _xmouse+x;
  ball._y = _ymouse+y;
 } else {
  ymov += gravity;
  ball._y += ymov;
  ball._x += xmov;
  xmov *= 0.98;
 }
//设置球与墙碰撞后的结果
 if (ball._y>=Shadow._y-ball._height/2) {
  ball._y = Shadow._y-ball._height/2;
  ymov *= -0.85;
 }
 if (ball._x<ball._width/2) {
  ball._x = ball._width/2;
  xmov = -xmov;
 }
 if (ball._x>800-ball._width/2) {
  ball._x = 800-ball._width/2;
  xmov = -xmov;
 }
};
function Release(){
 Hand.gotoAndStop(1);
  xmov = (ball._x-ball_follow._x)/3;
  ymov = (ball._y-ball_follow._y)/5;
  leave = false;
}


源代码网供稿.
网友评论 (0)
会员中心
设计在线
本站推荐
设计在线之精华