WEB开发网
开发学院图形图像Flash 设计实现flash小球沿菱形运动 阅读

设计实现flash小球沿菱形运动

 2008-01-17 11:19:41 来源:WEB开发网   
核心提示:如何使小球沿菱形运动(不用引导线),其实方法有多种,下面帖一种比较简单的方法,老鸟们别看了(浪费你的时间).以下代码中 ball是那个红色小圆点, rhombus 是那个菱形//初始值var x0:Number = rhombus._x, y0:Number = rhombus._y, w:Number = rhomb

如何使小球沿菱形运动(不用引导线),其实方法有多种,下面帖一种比较简单的方法,老鸟们别看了(浪费你的时间).

以下代码中 ball是那个红色小圆点, rhombus 是那个菱形

  //初始值
  
  var x0:Number = rhombus._x, y0:Number = rhombus._y, w:Number = rhombus._width, h:Number = rhombus._height;
  
  //四个顶点的坐标(从上往右往下往左)
  
  var xy_array:Array = [[x0, y0-h/2], [x0+w/2, y0], [x0, y0+h/2], [x0-w/2, y0]];
  
  //开始点坐标,定点在最高处,其中startX startY 两个变量决定到达转折点折反时的起始坐标值
  
  var startX:Number = ball._x=xy_array[0][0];
  
  var startY:Number = ball._y=xy_array[0][1];
  
  //k 决定取数组中哪个元素的值
  
  var k:Number = 1;
  
  ball.onEnterFrame = function() {
  
    //匀速运动,也就是将终点坐标与起点坐标的长度分成50个等份,ball坐标每次移动1个等份,直到终点
  
    this._x += (xy_array[k][0]-startX)/50;
    this._y += (xy_array[k][1]-startY)/50;
    //当到达最右边点时
  
    if (this._x>=(xy_array[1][0]-1)) {
        //定义ball坐标和起点坐标的值,防止ball出现偏移,下面各个if 中意思相似
  
        this._x = startX=xy_array[1][0];
        this._y = startY=xy_array[1][1];
        k = 2;
        // k值变化决定终点坐标值,下同
    }
    if (this._y>=(xy_array[2][1]-1)) {
  
        this._x = startX=xy_array[2][0];
        this._y = startY=xy_array[2][1];
        k = 3;
  
    }
  
   if (this._x<=(xy_array[3][0]+1)) {
  
        this._x = startX=xy_array[3][0];
        this._y = startY=xy_array[3][1];
        k = 0;
  
    }
  
    if (this._y<=(xy_array[0][1]+1)) {
  
        this._x = startX=xy_array[0][0];
        this._y = startY=xy_array[0][1];
        k = 1;
    }
};

Tags:设计 实现 flash

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接