快速业务通道

Flash游戏设计之迷宫篇

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-10
?}
??gotoAndStop(1);
??} else if (kd == Key.LEFT) {???
???if (cell[2] == false) {
????_root.tankX--;
????this._x -= 30;
???}
??gotoAndStop(2);
??} else if (kd == Key.UP) {
???if (cell[3] == false) {
????_root.tankY--;
????this._Y -= 30;
???}
??gotoAndStop(3);
??}
// 检测游戏是否碰撞“飞机”元件,有则跳转到第6帧
??if (this.hitTest(_root.plane)) {
???_root.gotoAndStop(6);
// 隐藏“飞机”元件
???_root.plane._visible = 0;
???}
?}
?// 定义fun_cellwall函数
?function fun_cellwall(a, b) {
??cw = new Array();
??for (i=0; i<_root.Maze.length; i++) {
???if (_root.Maze[i][4] == a && _root.Maze[i][5] == b) {
????cw = _root.Maze[i];
????return cw;
???}
??}
}
} ? 上一页??[1]?[2]?[3]?[4]?[5]?下一页??
  如图4所示,选中“坦克”元件中按快捷键F6插入3个关键帧。按快捷键Ctrl+T打开“变形”面板把“坦克”元件换个方向。如图6所示。4帧中坦克面向分别为下、左、上、右。 ? 图6

  3.迷宫出口。迷宫的出口是一架飞机,也就是故事梗概中敌人的机场^O^。只要“坦克”碰撞到飞机,则任务完成。新建一个“飞机”影片剪辑元件,从“库”面板中拖入到“场景1”中。在场景中点选该元件在“属性”面板中命名其实例名为“plane”。
图7
  4.重玩设置。无论什么游戏,都需要有一个重玩的机制。制作一个按钮,按钮在按钮场景中用“文本”工具写上“继续任务”四个字。 ? 图8
  5.制作迷宫。前面笔者已经讲过,游戏中的迷宫完全是随机生成的。设计者所要做的工作就是给程序提供组成迷宫的四个线段。如图7所示,创建4个“线段”影片剪辑元件。元件创建好后,点选“线条”工具(图标2),在“线段1”的场景里绘制一条直线,点选绘制好的直线,如图8所示设置其“属性”面板。其它3个“线段”元件的设置方法和“线段1”一样,只是位置不一样。“线段2”的“属性“面板设置如图9所示,其宽为30px,Y轴的距离为15px。“线段3”宽度宽高和“线段1”一样,只是X轴的坐标为15px。“线段4”宽度宽高和“线段2”一样,只是Y轴的坐标为-15px。 ? 图9
? 上一页??[1]?[2]?[3]?[4]?[5]?下一页?? ?   6.按快捷键Ctrl+L打开“库”面板,右键单击库中的“线条1”元件,在弹出的菜单中选择“链接...”命令。如图10所示设置“链接属性”面板,给声音文件起个标识符名为“w1”,以便以后调用。其它三个“线段”元件的标识符分别为“w2”、“w3”和“w4”。
图10 ?
??设置主场景。

  1.按快捷键Ctrl+E回到“场景1”。双击“图层1”的文字,将其改名为“飞机”。在该层的第4帧按F7键插入一个空白关键帧。从库中将“飞机”元件拖到场景上任意位置,并在“属性”面板设置其实例名为“plane”。

  2.如图2所示新建一个“坦克”层,该层的作用是放置游戏开始信息和“坦克”元件的。在该层第1帧中输入文字“游戏载入中 请稍等:)”。在第4帧插入一个空白关键帧,从库中将“坦克”元件拖到场景中,并在“属性”面板中设置其实例名为tank。在第6帧上按F5键插入帧。

  3.如图2所示创建一个“脚本”层。选中该层的第3帧插入一个空白关键帧。点选第3帧,按快捷键F9打开“动作”面板,键入如下代码。

// MazeH和MazeW是地图的高和宽,地图大小和复杂程度由这两个变量控制
MazeH = 12;
MazeW = 12;
// 定义变量TotalCells,其值为迷宫的面积,控制着迷宫所能容纳“线条”元件的数量
TotalCells = MazeH*MazeW;
// 定义一个新的数组Maze
Maze = new Array();
for (i=0; i// 定义两个新数组Room和Cell
?Room = new Array();
?Cell = new Array();
// 使用数组对象中的Push方法将数据添加到数组元素中,i/MazeW为取整,i%MazeW取余数
?Cell.push(true, true, true, true);
?Cell.push(

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号