通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>网络媒体>>flash>>正文 新版上线![旧版]
注:打开慢时请稍等

flash游戏制作:弹力球

http://www.iyit.net  日期:2006-5-27 17:54:06  来源:网络转载   点击:
参加讨论

  弹力球是一个很有趣的小游戏,有点像我们玩的乒乓球,不过这个游戏里玩家只有你一个,你必须尽力用鼠标去控制滑板将小球反弹回去,千万不能碰到四周的墙壁,否则游戏以失败而告终。每成功将小球反弹一次将得到50分,而每碰到一次墙壁会扣掉500分,玩家在每次游戏中一共有六次机会。

  游戏界面如图1所示:

图1

  注意:当你的鼠标在游戏范围内时,鼠标中心的水平和垂直延长线决定左右挡板和上下挡板中心的位置。

  下面我们就开始具体的游戏制作。

  启动flash,新建一个影片,然后选取modify/document菜单命令,在弹出的document properties面板中如图2所示设置影片的属性:


图2

  我们分以下三个大步骤制作,文章末尾提供.fla源文件下载学习。

  一、游戏基本元素的准备

  本步骤我们首先要准备好在游戏中要用到的一些元素和素材。

  1.先我们来制作游戏中的主角,弹力小球。选取insertànew symbol菜单命令,在弹出的create new symbol面板中设置组件类型为movie clip,并给组件取名为ball,如图3所示:


图3

  2.在组件ball的编辑区内,用椭圆工具画一个正圆形,然后用填充工具填充上适当的颜色,颜色可以根据自己的喜好进行选择,本例中我们将小球填充为草绿色,填充好的小球如图4所示:


图4

  3.接下来制作游戏中的挡板。还是选取insertànew symbol菜单命令,在弹出的create new symbol面板中设置组件类型为movie clip,并给组件取名为horizontal paddles,即水平挡板,在组件horizontal paddles的编辑区内,用矩形工具画一个长的圆角矩形,并填充上草绿色,然后将其放置到坐标为(-39.5,143.0)处(具体坐标值可以在properties面板中设置),如图5所示:


图5

  4.按照同样的方法制作一个一模一样的圆角矩形,将其放置到坐标为(-39.5,128.3)的位置,最后如图6所示:


图6

  5.按照制作组件horizontal paddles一样的方法,制作一个movie clip组件vertical paddles,不同之处是此组件是垂直挡板,我们完全可以将组件horizontal paddles旋转90度后,就可以得到所要的效果,如图7所示:


图7

  6.因为游戏中我们需要用鼠标控制水平和垂直挡板,所以就需要将鼠标坐标值传递给挡板,所以我们需要做一个空的mc,来充当这个间接传递坐标的任务。选取insert/new symbol菜单命令,在弹出的create new symbol面板中设置组件类型为movie clip,并给组件取名为mouse tracker,仅此而已,不需要进行其它任何工作。

  7.当然游戏中也少不了一些按钮,本游戏我们需要一个重新开始的按钮,风格和样式可以自己选择,本实例中我们的重玩按钮如图8所示:


图8

  到目前为止,我们游戏的准备工作就告一段落了,接下来是游戏中最最关键的一步,action控制代码的添加。
  二、游戏action控制代码的添加

  1.为了方便我们对游戏进行修改和调试,我们一般都需要把大部分的控制代码专门放到一个独立的mc中,这也是一个制作的好习惯。

  2.选取insertànew symbol菜单命令,在弹出的create new symbol面板中设置组件类型为movie clip,并给组件取名为paddle controller。

  3.在组件paddle controller的编辑状态下,我们新建两个图层layer2和layer3,连上组件莫认的layere1,一共有三个独立的图层。

  4.在图层layer2上,我们使用文本工具在编辑区中画两个大小适中的文本框,如图9所示:


图9

  5. 在properties面板中分别设置这两个文本框为dynamic text类型,即动态文本框,左边的文本框我们用来显示得分,右边的文本框我们用来显示剩余的生命,所以分别在properties面板中设置它们的变量名var为score和lives,如图10和图11所示:


图10


图11

  6.然后将图层layer2延续到第22帧。

  7.在图层layer3上输入文本get ready,作为游戏开始的提示信息,并将此帧延续到第18帧,如图12所示:

图12

  8.在图层layer3的第19,20,21三帧分别插入三个空白关键帧,然后在第22帧插入关键帧,从图库中将前面做好的重玩按钮放到编辑区中,如图13所示:

图13

  9.并给重玩按钮添加as:

  on (release) {
    score = 0;
    lives = 5;
    gotoandplay(1);
  }
  //初始化游戏得分和生命值,并且跳到第一帧重新开始游戏

  10.回到图层layer1,在第1帧,第20帧和第21帧插入三个关键帧,给第1帧添加如下as:

  xstep = number(random(5))+6;
  ystep = number(random(5))+3;
  //设置两个随机变量,其中xstep的范围是6-11,ystep的范围是3-8,random(n)这个随//机函数会产生一个从0到n的随机数
  xmodifier = random(10);
  ymodifier = random(10);
  //设置两也随机变量,范围都是从0到10
  if (number(xmodifier)>5) {
    xstep = xstep-(xstep*2);
  }
  if (number(ymodifier)>5) {
    ystep = ystep-(ystep*2);
  }
  //根据xmodifier和ymodifier这两个随机树取值的不同,对xstep和ystep两变量值//进行修改
  if (number(lives) == 0) {
    gotoandstop(22);
  }
  //如果lives值等于0,即生命值为0,则游戏结束,跳到第22帧也就是游戏结束画面

  11. 第20帧添加如下as

  horx = getproperty("/mousetrack", _x);
  setproperty("/hor", _x, eval("horx"));
  //取得对象mousetrack的横坐标,并赋给水平挡板hor,这样就控制了水平挡板和鼠标//的横坐标始终相等,使它们保持在一条垂直线上
  verty = getproperty("/mousetrack", _y);
  if (number(verty)<245) {
    setproperty("/vert", _y, eval("verty"));
  } else {
    setproperty("/vert", _y, 245);
  }
  //设置垂直挡板的位置,并且规定了挡板的最大纵坐标值为245
  ballx = getproperty("/ball", _x);
  setproperty("/ball", _x, number(ballx)+number(int(xstep)));
  bally = getproperty("/ball", _y);
  setproperty("/ball", _y, number(bally)+number(int(ystep)));
  //设置弹力小球的坐标值,经过一系列计算后,产生了一个随机的坐标值

  12. 第21帧添加如下as

  lose = 0;
  leftconstraint = getproperty("/hor", _x)-47;
  rightconstraint = number(leftconstraint)+94;
  upperconstraint = getproperty("/vert", _y)-47;
  lowerconstraint = number(upperconstraint)+94;
  yaccel = verty-getproperty("/mousetrack", _y);
  xaccel = horx-getproperty("/mousetrack", _x);
  //定义一系列变量,leftconstraint,rightconstraint,upperconstraint,lowerconstraint
  //设置了小球所能活动的范围
  if (number(getproperty("/ball", _y))>270 or number(getproperty("/ball", _y))<30) {
    if ((number(getproperty("/ball",_x))>number(leftconstraint)) and (number(getproperty("/ball", _x)){
      ystep = ystep-(ystep*2);
      xstep = int(xstep-(0.15*xaccel));
      score = number(score)+50;
    } else {
      lose = 1;
    }
  }

  //此段程序判断小球是否碰到了水平挡板上,如果碰到了,则分数加50,然后设置小//球的反弹坐标,否则,标志位lose记为1,说明碰到了墙壁

  if (number(getproperty("/ball", _x))>270 or number(getproperty("/ball", _x))<30) {
    if ((number(getproperty("/ball",_y))>number(upperconstraint)) and (number(getproperty("/ball", _y)){
      xstep = xstep-(xstep*2);
      ystep = int(ystep-(0.15*yaccel));
      score = number(score)+50;
    } else {
      lose = 1;
    }
  }
  //此段程序判断小球是否碰到了垂直挡板上, 如果碰到了,则分数加50,然后设置小//球的反弹坐标,否则,标志位lose记为1,说明碰到了墙壁。

  if (number(lose) == 0) {
    gotoandplay(20);
  } else {
    setproperty("/ball", _x, 150);
    setproperty("/ball", _y, 150);
    lives = lives-1;
    score = score-500;
    gotoandplay(1);
  }
  //若没有让小球触到墙壁,即lose的值为0,则回到第20帧,继续游戏,如果小球触到了墙壁,则重新设置小球的位置,并且分数减去500,生命值扣掉1,回到第一帧开始游戏

  13.最后的时间线如图14所示,到这里,本游戏中最关键的action就添加完了,下面我就可以开始布置主场景了。


图14

  三、游戏场景的布置

  1.回到主场景中,新建立layer2到layer4四个图层。

  2.在图层layer1中,我们铺上一幅游戏背景图,可以自己在flash中画,也可以从外部导入一幅图片,如图15所示:


图15

  3.在图层layer2中,将组件mouse tracker拖到舞台上,作为传递鼠标值的中间角色,并在properties面板中给其命名为mousetrack。

  4.在图层layer3中,分别将组件horizontal paddles,vertical paddles和paddle controller放到舞台的合适位置,分别在properties面板中命名为hor,ver和controller,如图16所示:

图16

  5.然后在图层layer3的第1帧加as:

  stop();
  /controller:lives = 5;
  /controller:score = 0;
  //初始化游戏得分和生命值分别为0和5

  6.最后将组件ball放到图层layer4中,在properties面板中给其命名为ball,并给图层layer4的第1帧加as:

  setproperty("/mousetrack", _visible, "0");
  startdrag("mousetrack", true, 55, 55, 245, 330);
  setproperty("/quitspot", _visible, 0);
  //设置对象mousetrack在游戏中不可见,并且对mousetrack进行拖动,使对象//mousetrack紧跟鼠标运动。

  7.这样整个游戏就做完了,最后的主场景和时间线分别如图17和图18所示:

  
图17                    图18


原文件下载学习


编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:用flash模拟机械节拍器
下一篇:在flash中实现三种爆炸效果
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
flash游戏制作:打砖块 flash游戏制作:找错误 flash趣味游戏制作:猜数字
flash游戏制作:七巧板 利用条件语句制作单词游戏(as条件语句 asp作的剪包锤游戏
如何在win20003中更好的玩游戏
最新更新 热点排行 推荐新闻
flash 5.0 功能简介
flash 菜单简要说明(1)
flash 中音频素材的处理
flash shared library 的使用方法(1)
flash 浮动面板使用大全(1)
flash 5.0 功能简介
flash 菜单简要说明(1)
flash 中音频素材的处理
flash shared library 的使用方法(1)
flash 浮动面板使用大全(1)
flash 浮动面板使用大全(2)
flash 鼠标指针
flash 替换外部图片或声音
flash 物体的淡出效果制
flash 引导线的使用
flash常用mc属性控制(1)
flash 神奇遮罩之原理篇(1)
flash mx2004入门与进阶实例——mtv实
flash mx2004入门与进阶实例(1)
flash 神奇遮罩之原理篇(2)
优秀公益广告作品欣赏(8)
java数据类型转换
windows xp专业版iis连接数的更改
新开放qq免费挂级网站
优秀公益广告作品欣赏(7)
免费在qq上看在线电影电视听音乐
office2007简体中文版浮出水面 美图抢
qq最新版下载 2006 beta2 体验新感受 
qq珊瑚虫外挂4.0版本发布!
web服务器配置全攻略(三)
dreamweaver mx 2004从零开始(1)
利用css改善网站可访问性
如何让mm的脸通透可人
msn8.0下载
asp 五大高效提速技巧
如何在win20003中更好的玩游戏
qq收费头像免费使用的方法 
微软将在华推分期付款,充值卡pc 可低价
 amd处理器am2测试 风扇竟运行7分钟
exeplorer.exe错误的问题的总结、解决
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息