Flash游戏设计之迷宫篇
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-10
int(i/MazeW)); ?Cell.push(i%MazeW); ?Room.push(Cell); ?Maze.push(Room); } while (true) { roomNum = random(Maze.length); cellNum = random(Maze[roomNum].length); // 取三个随机数 wallNum = random(4); // 判断Maze数组的元素[roomNum][cellNum][wallNum]的值是否为假,如果为假,进行下一步循环 if (Maze[roomNum][cellNum][wallNum] == false) { ??continue; ?} // 判断“线段”元件的编号,执行相应的操作 x = Maze[roomNum][cellNum][4]; y = Maze[roomNum][cellNum][5]; if (wallNum == 0 and x == mazeW-1) { ??continue; } else if (wallNum == 1 and y == mazeH-1) { ??continue; } else if (wallNum == 2 and x == 0) { ??continue; ?} else if (wallNum == 3 and y == 0) { ??continue; ?} oppsCell = new Array(); // 根据不同“线段”元件的编号分别调用参数不同的函数,fun_findcell为自定义函数 if (wallNum == 0) { ??oppsCell = fun_findcell(x+1, y); ?} else if (wallNum == 1) { ??oppsCell = fun_findcell(x, y+1); ?} else if (wallNum == 2) { ??oppsCell = fun_findcell(x-1, y); ?} else if (wallNum == 3) { ??oppsCell = fun_findcell(x, y-1); ?} ?if (oppsCell[0] == roomNum) { ??continue; ?} // 使迷宫地图能够产生一个通道 ?if (wallNum == 0) { ??oppsWall = 2; ?} else if (wallNum == 1) { ??oppsWall = 3; ?} else if (wallNum == 2) { ??oppsWall = 0; ?} else if (wallNum == 3) { ??oppsWall = 1; ?} // 用四个墙壁将空间封闭 ?Maze[roomNum][cellNum][wallNum] = false; ?Maze[oppsCell[0]][oppsCell[1]][oppsWall] = false; ?Maze[roomNum] = Maze[roomNum].concat(Maze[oppsCell[0]]); ?Maze.splice(oppsCell[0], 1); ?// ?if (Maze.length == 1) { ??break; ?} } // 自定义函数fun_findcell,用来寻找没有封闭的单元格 function fun_findcell (a, b) { ?reCell = new Array(); ?for (i=0; i ????reCell.push(i, j); ????return reCell; ???} ??} } } 在第4帧中键入如下代码: // 定义三个变量 Maz = Maze[0]; cellW = 30; wn = 0; // 控制游戏主角在迷宫中运动,并对路线进行判断 for (i=0; i ?cellY = Maze[i][5]; ?for (j=0; j<4; j++) { ??if (Maze[i][j] == true) { ???_root.attachMovie("w"+j, "ww"+wn, wn); ???eval("ww"+wn)._x = 105+cellW*cellX; ???eval("ww"+wn)._y = 35+cellW*cellY; ???wn++; ??} ?} } // 设置游戏主角的坐标 man._x=105; man._y=35; // 主角处于游戏进行状态 man.gotoAndStop(1); // 设置迷宫出口坐标 exit._x=105+11*cellW; exit._y=35+11*cellW; manX = 0; manY = 0; 在第6帧和第7帧都添加语句“stop();”,用以停止游戏地运行。 4.创建一个“重玩”层,在第6帧插入一个关键帧,从库中把“重玩”按钮元件放置到场景右边。点选该元件,按F9键打开“动作”面板,键入如下代码。 on (release) { // 清除地图,回到第1帧中重新构造地图 ?for(i=0;i ?} ?gotoAndPlay (1); } 到这里迷宫游戏就制作完成了。 ? 该效果源件下载(58.8K) 点击最后一页预览效果 上一页??[1]?[2]?[3]?[4]?[5]?下一页?? ? 上一页??[1]?[2]?[3]?[4]?[5]? 关键词: |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: Flash实例效果之电子日历下一篇: Flash中变色背景的实现技巧
关于Flash游戏设计之迷宫篇的所有评论