关闭顶部展开顶部

Flash AS实现的迷宫视觉效果_Flash教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:用Flash 8 制作简单的Flash相册
本文适合初学者,涉及到的知识包括:遮罩的运用,简单的ActionScript的写法。欢迎转载本站文章,但是转载必须注明出处,并且保留文章中的所有链接,谢谢支持!

完全是由Flash Actionscript实现的一个迷宫图效果。

演示:

源文件:点击这里下载源文件

打开Flash,新建立一个文档,然后修改属性,把帧频调整到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轻松实现五彩变换多边形鼠标轨迹特效
本教程完全是利用Flash的ActionScript指令来实现了!利用Flash画图大家已经知道了!这个教程就当给大家复习一下FlashActionscript的绘图功能吧!这个教程制

/所属分类:Flash教程/更新时间:2008-03-05
相关Flash教程
闂佹眹鍩勯崹閬嶆偤閺囶澁缍栭柛鈩冪⊕閳锋帗銇勯弴妤€浜惧銈忕秶閹凤拷
濠电偛顕慨顓㈠磻閹炬枼妲堥柡鍌濇硶婢ф稒淇婇懠顒夆偓婵嬫煟閵忊晛鐏查柟鍑ゆ嫹
濠电姷顣介埀顒€鍟块埀顒勵棑缁辩偛顓兼径瀣閻庣懓瀚竟鍡欐崲娑斾線鏌i姀鈺佺伈闁瑰嚖鎷�
濠电姷顣介埀顒€鍟块埀顒勵棑缁辩偛顓兼径濠勵吋闂佽鍨庨崟顓фК闂佽閰eḿ褍螞濞戙垺鍋夐柨鐕傛嫹
闂備胶枪缁绘劙骞婃惔銊ョ劦妞ゆ帒鍊哥敮鍫曞箹鐎涙ḿ鐭掔€规洘绻堥弫鎾绘晸閿燂拷
闂備胶枪缁绘劙骞婃惔銊ョ劦妞ゆ巻鍋撻柛姘儑缁﹪鏁傞崜褏鐓撻柣搴岛閺呮繈鎯屽▎鎴犵=濞撴艾锕ョ€氾拷
闂備浇銆€閸嬫挻銇勯弽銊р槈闁伙富鍣i弻娑樷攽閹邦亞鑳虹紓浣靛妽濡炶棄顕i妸鈺婃晬婵炲棙鍨电粭锟犳⒑閸濆嫬鈧骞婇幘鑸殿潟闁跨噦鎷�
闂備礁鎼崯鐗堟叏妞嬪海绀婂鑸靛姈閻擄綁鎮规潪鎷岊劅婵炲眰鍊曢湁闁挎繂妫欑粈鈧梺鍛娚戦悧鐘茬暦閹扮増鏅搁柨鐕傛嫹
婵犵妲呴崹顏堝礈濠靛棭鐔嗘俊顖氬悑鐎氱粯銇勯幘瀵哥畺閻庢熬鎷�
濠电姷顣介埀顒€鍟块埀顒勵棑缁辩偛顓奸崶銊ヮ伕濡炪倖鎸荤换鍐偓姘虫珪娣囧﹪顢涘Δ鈧晶鍙夌節椤喗瀚�
婵犵妲呴崹顏堝礈濠靛棭鐔嗘慨妞诲亾鐎规洦鍓熼、娆撳礂閻撳簶鍋撻悽鍛婄厸闁割偅绻勫瓭婵犳鍣幏锟�
婵犵妲呴崹顏堝礈濠靛棭鐔嗘慨妞诲亾闁哄苯鎳橀崺鈧い鎺嗗亾闁宠閰i獮鎴﹀箛闂堟稒顔嗛梻浣告惈鐎氭悂骞忛敓锟�
婵犵妲呴崹顏堝礈濠靛棭鐔嗘慨妞诲亾鐎规洩缍侀獮瀣攽閸偂绱�
濠电姷顣介埀顒€鍟块埀顒勵棑缁辩偛顓兼径濠勭厬闂佺懓鐡ㄧ换鍕敂鐎涙ü绻嗘い鏍殔婢у弶绻濋~顔藉
闂佽楠搁崢婊堝礈濠靛鍋嬮柟鎯版閻鈹戦悩鎻掓殭闁奸潧缍婇弻銈夋嚍閵夈儱顫嶉梺缁樼壄缂嶄礁鐣峰▎鎾存櫢闁跨噦鎷�
UB闂備礁婀辩划顖炲礉濡ゅ懐宓侀柛銉㈡櫆鐎氭岸鎮楀☉娅虫垿锝為敓锟�
闂備浇澹堟ご绋款潖婵犳碍鐒鹃悗鐢电《閸嬫捇鐛崹顔句痪濠电姭鍋撻柨鐕傛嫹
闂佽楠哥粻宥夊垂閸濆嫸鑰块柛銏㈠殰
闂備礁鎲″缁樻叏妞嬪海绀婂璺虹灱閸楁碍绻涢崱妤€顒㈤柛鐐差槹缁绘稓绱欓悩鍝勫帯闂佺ǹ楠忛幏锟�
缂傚倸鍊烽悞锕傛偡閿曞倸鍨傛繝濠傚椤╅攱銇勯幒宥囶槮缂佹彃婀遍埀顒傚仯閸婃繄绱撳棰濇晩闁跨噦鎷�
©2017 www.mb5u.com婵犵妲呴崹顏堝礈濠靛棭鐔嗘慨妞诲亾鐎殿噮鍣i幃鈺呭箵閹烘挸鐦�
闂備浇銆€閸嬫捇鏌熼婊冾暭妞ゃ儻鎷�&闂備礁鎲$敮鎺懳涢弮鍫燁棅闁跨噦鎷�