快速业务通道

用数组实现flash中的迷宫行走

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-14

?

  数组在Flash中有很广泛的应用,通常我们可以用它来定义地图、棋盘等,用来判断位置等很方便。数组的应用在各类游戏中运用也很多,其实也都大同小异,主要是数值映射,理解并掌握了这个,大家一定能做出许多优秀的flash作品和游戏来。

  本文我们通过一个骷髅在数组设定的迷宫中行走的例子简单介绍一下数组的应用实例,文章末尾提供fla源文件下载。

  左边是该实例的层次图。

  整个场景中只有map和player两个mc,几乎所有的as控制都捆绑在map上。



用方向键控制骷髅在迷宫中行走。(文件稍大,请耐心等候)
  在这个实例中,我们通过数组的应用,实现了角色在行走过程中与障碍物碰撞的判定。有些朋友可能会认为还是用hitTest来判断碰撞比较方便,但是用数组来判定碰撞更有利于障碍物的设定。这是个一劳永逸的方法,只要灵活运用就可以把它做成动作游戏或是RPG游戏。

  一、场景和元素的准备   1、迷宫地图 map   设场景大小为425×325。新建一个MovieClip(下称MC),用Ctrl+R导入预先做好的800*600的迷宫地图。

  返回场景,按Ctrl+L快捷键打开库,把这个MC拖到场景中,设置它的比例为250,并命名为map,这就是我们的迷宫MC。这样做的目的是为了在场景中只能看见迷宫的局部。


  2、行走的骷髅 player   将事先准备好的骷髅各个方向以及行走的静态图片导入库中备用。   现在我们来做8个方向行走的mc。新建一个MC,在各帧加入库中合适的图片做成骷髅向右下行走的mc动画act(n),一共5帧。再按同样的方法做好上、下、右、右上4个方向行走的MC,其他的3个方向(左、左上、左下)可以由此翻转而成,方法是:修改→变形→……。   再新建一个MC,依次在前8帧中分别导入角色各方向站立时的静态图片,顺序为左下、右上、右下、左上、下、上、左、右;然后在9~16帧中依次导入8个方向行走的MC(有三个是通过翻转得到)。最后在这个MC的第一帧的AS写上stop();把这个MC拖到场景中,命名为player,这就是迷宫中行走的那个骷髅。

  

  二、ActionScript控制

  本实例的AS控制代码都是写在场景中的map上的。

  先来讲讲数组的创建方式:

  1、new Array();  建立一个空数组
  2、new Array(length);  建立一个以length为长度(数组元素的个数)的数组
  3、new Array(element0,element1,......elementN);  建立一个数组,element0,element1,......elementN为数组元素的值。

  这儿我们用到第一种和第三种结合的方法来建立2维数组。   现在我们要建立一个60*80的2维数组blk,用来表示60行80列的迷宫。我们用循环初始化2维数组,赋值数组blk[1]~blk[60]的数组元素blk[1][1],blk[1][2]……blk[60][80]的值等于0,用来表示player可以行走。这儿用到了上文提到的第三种方法,可以这样理解,blk[1]~blk[60]是60个1维数组,而它们又是数组blk[][]里面的60个数组元素,这就形成了一个2维数组blk[][]。接着初始化障碍,如blk[9][23] = 1;即player不能通过数组blk的第9行12列元素映射在map上的矩形,依次设定障碍。(我是做了个简单的地图编辑器来设定障碍,然后把障碍的数据,如"blk[9][23] = 1;"用trace输出,然后复制出来的,有兴趣的朋友可以试试。)

  我们用_root.map.y和_root.map.x来表示player在数组中的位置,如_root.map.y=3,_root.map.x=4,那么就表示player在数组中3行4列的位置,因为这个

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号