频道直达 - 学院 - 下载 - 交易 - 特效 - 字库 - 手册 -排名-工具- 繁體
网页教学网站开发 设为首页
加入收藏
联系我们
建站搜索: 常用广告代码   用户注册 | 用户登陆
您当前的位置:中国建站之家 -> 网站开发工具应用教程 -> Flash教程 -> Flash游戏开发实例系列:迷宫篇

Flash游戏开发实例系列:迷宫篇

作者:未知  来源:转载  发布时间:2005-8-16 20:12:37  发布人:acx

减小字体 增大字体

效果预览图:

效果图

  源文件下载:点击这里进入下载页面

游戏背景:

  在暮色中,一支坦克小分队要去消灭敌人的飞机场,但途中陷入了敌人设置的一个迷宫里。玩家的任务就是带领这只小分队走出该迷宫,到达敌人的飞机场后,任务即完成。

游戏简介:

  迷宫游戏是一种经久不衰的游戏,其玩法也很简单,就是从起点开始找到出口。传统的迷宫游戏只能通过复杂的地图,多种出路组合来吸引玩家的兴趣。而本例中的这个迷宫游戏则不同,因为它的地图是随机生成的,这样就大大地增强了游戏的可玩性。这也是该游戏设计最有吸引力的地方。

  为了考虑到大部分读者,游戏并没有被设计的多复杂。但游戏的制作方法很容易掌握,读者学会后,可自行设计出更加复杂的迷宫游戏。

游戏玩法:

  游戏的玩法很简单。玩家只要通过敲击键盘上的方向键来控制“坦克”前进和后退,只到接触到“飞机”,游戏结束。单击“继续任务”按钮则可重新开始游戏。

游戏定义:

  在设计游戏前,总需要考虑这样几个问题,游戏环境的形成、规则的创建以及如何编写游戏的代码。但幸运的的是,这个迷宫游戏定义起来并不复杂。

  1.游戏环境。首先要考虑的是游戏在怎样的一个环境中进行。这是实现一个简单的顺序游戏最关键的部分。该游戏中,使用Array(数组)对象来控制实现迷宫的动态生成。这一点确保了游戏的可玩性。在其它游戏中,设计中也可以通过载入地图的方法来实现游戏的多样性。

  2.控制方法。玩家如何控制游戏中的角色,操作是否方便有决定了游戏的可玩性。设计者可以通过许多行为方法来控制游戏主角的运动。该游戏中,只要使用简单的随机行为就可以了,即使游戏主角的位置发生一定的便宜。玩家可以通过键盘的触发时间来控制游戏中主角——“坦克”的运动。

  3.游戏结束。其实,游戏中最困难的事情之一是如何来判定玩家的胜利和游戏的结束。主角碰壁则不难实现,使用hitTest碰撞检测就能轻松解决问题。庆幸的是,这个游戏中也能通过碰撞检测技术来判断“坦克”是否到达了出口,即是否碰到了飞机。

制作步骤:

  新建一个Flash文档,单击“属性”面板中的“尺寸”按钮,打开“文档属性”面板设置场景大小为,540px x 400px背景为黑色,帧频为12fps。如图1所示。在游戏制作之前,为了让大家对该游戏能有一个整体的感觉,也为方便以后的设计,我们先来看看游戏场景中层与帧的布置与设计。如图2所示。

图1

图2

设计元件

  1.游戏主角。游戏主角就是由玩家来操作的游戏角色。按快捷键Ctrl+F8打开“新建元件”面板新建一个名为“坦克”的影片剪辑元件。如图3所示。在“坦克”元件的场景中按快捷键Ctrl+R打开“导入”面板,导入一个坦克图片,如图4所示。在“属性”面板里设置“坦克”的高和宽都为24px。

图3

图4

  2.按快捷键Ctrl+L打开“库”面板,把库中的“坦克”元件拖入到“场景1”中。点选场景中的“坦克”元件,在“属性”面板命名其实例名为tank。如图5所示。接着点选场景中的“坦克”元件,按快捷键F9打开的“动作”面板并键入如下代码。

图5

// 按下任意键执行
onClipEvent (keyDown) {
// 纪录被敲击的键
 kd = Key.getCode();
// 如果没有碰到“飞机”元件
 if (!this.hitTest(_root.plane)) {
  cell = new Array();
  cell = fun_cellwall(_root.tankX, _root.tankY);
// 如果敲击右方向键
  if (kd == Key.RIGHT) {
// 如果通道畅通则移动“坦克”元件
   if (cell[0] == false) {
    _root.tankX++;
    this._x += 30;
   }
// 跳转到“坦克”元件的第4帧并停止播放
  gotoAndStop(4);
  } else if (kd == Key.DOWN) {   
   if (cell[1] == false) {
    _root.tankY++;
    this._Y += 30;
   }
  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;
   }
  }
}
}

  如图4所示,选中“坦克”元件中按快捷键F6插入3个关键帧。按快捷键Ctrl+T打开“变形”面板把“坦克”元件换个方向。如图6所示。4帧中坦克面向分别为下、左、上、右。

图6

  3.迷宫出口。迷宫的出口是一架飞机,也就是故事梗概中敌人的机场^O^。只要“坦克”碰撞到飞机,则任务完成。新建一个“飞机”影片剪辑元件,从“库”面板中拖入到“场景1”中。在场景中点选该元件在“属性”面板中命名其实例名为“plane”。

  4.重玩设置。无论什么游戏,都需要有一个重玩的机制。制作一个按钮,按钮在按钮场景中用“文本”工具写上“继续任务”四个字。


将本文收藏到QQ书签与更多好友分享
[打 印]
[] [返回上一页] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
精彩推荐
热门文章
· 注册码大全二
· 注册码大全四
· 注册码大全一
· 要10G免费网络硬盘的请进..
· 通过google 赶快来赚美金..
· 注册码大全十
· 头像-qq头像(qq新头像)4..
· 让你轻松架设FTP服务器1..
· 注册码大全三
· 梦幻背景图片7
· 卡通动物图片6
· 网页制作素材-按钮素材2..
· 让你轻松架设FTP服务器5..
· 风景图片8
· 注册码大全九
· 让你轻松架设FTP服务器2..
关注此文读者还看过
· php3:跨平台的服务器端嵌..
· ADO.NET:通向未来之桥
· 网游终端争夺惊现“斩首..
· Sql Server实用操作小技..
· 骇客学堂:网络入侵检测..
· 动画的延长与缩短
· 防止作品被转载的三种方..
· ASP.NET中如何防范SQL注..
· Java程序设计资源推荐
· 要我发100MASP免费空间
· 关于修图一些教程
· 草根网站比门户网站更有..
· 3DsMAX实例制作:三维玻..
· 可用来显示空值的时间选..
· Html提高页面显示速度
· 《商业周刊》06全球品牌..
相关文章
· Flashback Query 恢复误删除..
· 从基础开始深入学Flash AS3..
· 从基础开始深入学Flash AS3..
· 从基础开始深入学Flash AS3..
· 从基础开始深入学Flash AS3..
· 从基础开始深入学Flash AS3..
· 从基础开始深入Flash AS3教..
· 从基础开始深入Flash AS3教..
· 以Flash动画作网站引导页面..
· 四个原因让Silverlight无法..
· 用 jsfl 扩展你的 flash
· 让 Flash 广告具有记忆功能..
· 利用FLASH 8绘图功能..
· Flash动画技巧:动画..
· Flash DateChooser 组..
· Flash动画概述、影片..
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 人才招聘
网站合作、内容监督、商务咨询:QQ: 9576619
Copyright ? 2005--2008 中国建站之家版权所有
粤ICP备05092265号