Flash专栏: 基础教程 | 技巧运用 | MTV实例教程 | 游戏实例教程 | 实例教程 | AS教程(new)
photoshop专栏: 基础 | 进阶 | 技巧总汇 | 精彩实例 | 文字特效 | 滤镜魔术 | 实际应用
网页设计: Dreamweaver教程 | FireWorks教程 | CorelDraw设计 | Freehand/Illustrator教程 | 音乐转换教程
首页 | Flash专栏 | Dreamweaver专栏 | FireWorks专栏 | photoshop精彩教程 | CorelDraw教程 | Freehand/Illustrator教程 | 音频视频制作教程
 
Flash专栏>Flash基础教程>Flash区块游戏之卷屏

  日期:2006-08-29 13 作者:zjs35 来源:闪吧
//增加卷屏事件
function strollMap(dirx) { 
    var mc = this.target._parent; 
    if (mc._x<=0) { 
      var t = mc._x-dirx*this.speed; 
      if (t>0) { 
        mc._x = 0; 
      } else if (t<this.target.mapminx) { 
        mc._x = this.target.mapminx; 
      } else { 
        mc._x -= dirx*this.speed; 
        var t = Math.abs(Math.floor((this.target._parent._x)/Tile.width)); 
        if (dirx == 1) { 
          this.dispatchEvent(); 
        } else if (dirx == -1) { 
          this.dispatchEvent(); 
        } 
      } 
    } 
  } 
在Game类中 
_char.addEventListener("left", Delegate.create(this, moveleft)); 
    _char.addEventListener("right", Delegate.create(this, moveright)); 
private function moveleft(obj) { 
    var t = obj.value-1; 
    if (t != 0) { 
      var row = t-1; 
      if (row>=0 && (row+endx+1)<_mapData.width) { 
        this.removeRow(row); 
        this.addRow(row+endx+1); 
      } 
    } 
  } 
  private function moveright(obj) { 
    var t = obj.value-1; 
    if (t>=0) { 
      var row = t; 
      if (row>=0 && (row+endx)<_mapData.width) { 
        this.addRow(row); 
        this.removeRow(row+endx+1); 
      } 
    } 
  } 
  //绘制指定列 
  private function addRow(row:Number) { 
    var w = _mapData.width; 
    var h = _mapData.height; 
    var tileW = Tile.width; 
    var tileH = Tile.height; 
    for (var i = 0; i<h; i++) { 
      var name = "t_"+i+"_"+row; 
      var mc = _target.wholemap.attachMovie("tile", name, i*w+row); 
      //根据参数来创建区块 
      mc.instance = new Tile(_mapData.getData(_index)[i][row]); 
      mc.instance.target = mc; 
      mc._x = row*tileW; 
      mc._y = i*tileH; 
      mc._width = tileW; 
      mc._height = tileH; 
      mc.gotoAndStop(mc.instance.name.frame); 
    } 
  } 
  private function removeRow(row:Number) { 
    var h = _mapData.height; 
    for (var i = 0; i<h; i++) { 
      var name = "t_"+i+"_"+row; 
      _target.wholemap[name].removeMovieClip(); 
    } 
  } 
   责任编辑:uufeng    时间:2006年8月25日
 
 
高手云集 版权所有 1998-2009