Flash AS實現(xiàn)的迷宮視覺效果_Flash教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:用Flash 8 制作簡單的Flash相冊
      本文適合初學(xué)者,涉及到的知識包括:遮罩的運用,簡單的ActionScript的寫法。歡迎轉(zhuǎn)載本站文章,但是轉(zhuǎn)載必須注明出處,并且保留文章中的所有鏈接,謝謝支持!

      完全是由Flash Actionscript實現(xiàn)的一個迷宮圖效果。

      演示:

      源文件:點擊這里下載源文件

      打開Flash,新建立一個文檔,然后修改屬性,把幀頻調(diào)整到25。

      然后直接在第一幀輸入下面Action:

      // maze width
      dim_x = 48;
      // maze height
      dim_y = 28;
      // wall lenght
      wall_size = 10;
      cell_count = dim_x*dim_y;
      var maze = new Array();
      var mymoves = new Array();
      for (x=0; x maze[x] = new Array(0, 1, 1, 1);
      // array contains VISITED (0 = not visited), MORTH WALL (1=up;0=down), SOUTH WALL, EAST WALL, WEST WALL
      }
      // start position
      pos = Math.round(Math.random()*(cell_count-1));
      // cells visited
      visited = 1;
      // mark first cell as visited
      maze[pos][0] = 1;
      while (visited // check for possible moves
      possible = "";
      if ((Math.floor(pos/dim_x) == Math.floor((pos-1)/dim_x)) and (maze[pos-1][0] == 0)) {
      possible = possible "W";
      }
      if ((Math.floor(pos/dim_x) == Math.floor((pos 1)/dim_x)) and (maze[pos 1][0] == 0)) {
      possible = possible "E";
      }
      if (((pos dim_x) possible = possible "S";
      }
      if (((pos-dim_x)>=0) and (maze[pos-dim_x][0] == 0)) {
      possible = possible "N";
      }
      // if a move exists, crash a wall and mark new cell as visited
      if (possible) {
      visited ;
      mymoves.push(pos);
      way = possible.charAt(Math.round(Math.random()*(possible.length-1)));
      switch (way) {
      case "N" :
      maze[pos][1] = 0;
      maze[pos-dim_x][2] = 0;
      pos -= dim_x;
      break;
      case "S" :
      maze[pos][2] = 0;
      maze[pos dim_x][1] = 0;
      pos = dim_x;
      break;
      case "E" :
      maze[pos][3] = 0;
      maze[pos 1][4] = 0;
      pos ;
      break;
      case "W" :
      maze[pos][4] = 0;
      maze[pos-1][3] = 0;
      pos--;
      break;
      }
      maze[pos][0] = 1;
      // else backtrack to previous visited cell
      } else {
      pos = mymoves.pop();
      }
      }
      // maze drawing
      this.createEmptyMovieClip("drawmaze", 10);
      drawmaze.lineStyle(0, 0x000000, 100);
      drawmaze.moveTo(10, 10);
      start_y = 10-wall_size;
      start_x = 0;
      for (x=0; x start_x = wall_size;
      if ((x%dim_x) == 0) {
      start_y = wall_size;
      start_x = 10;
      }
      if (maze[x][2] == 1) {
      // south
      drawmaze.moveTo(start_x, start_y wall_size);
      drawmaze.lineTo(start_x wall_size, start_y wall_size);
      //drawmaze.moveTo(start_x, start_y);
      }
      if (maze[x][3] == 1) {
      // east
      drawmaze.moveTo(start_x wall_size, start_y);
      drawmaze.lineTo(start_x wall_size, start_y wall_size);
      //drawmaze.moveTo(start_x, start_y);
      }
      }
      drawmaze.lineStyle(0, 0xff0000, 100);
      drawmaze.moveTo(10, 10);
      drawmaze.lineTo(10 wall_size*dim_x, 10);
      drawmaze.lineTo(10 wall_size*dim_x, 10 wall_size*dim_y);
      drawmaze.lineTo(10, 10 wall_size*dim_y);
      drawmaze.lineTo(10, 10);

      測試吧!

      分享:Flash輕松實現(xiàn)五彩變換多邊形鼠標(biāo)軌跡特效
      本教程完全是利用Flash的ActionScript指令來實現(xiàn)了!利用Flash畫圖大家已經(jīng)知道了!這個教程就當(dāng)給大家復(fù)習(xí)一下FlashActionscript的繪圖功能吧!這個教程制

      /所屬分類:Flash教程/更新時間:2008-03-05
      相關(guān)Flash教程