当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > Flash游戏制作:弹力球(3)

Flash动画制作
Flash实例教程:用AS3代码表现倾斜角与斜率
Flash实例教程:用AS3代码制作交互式3D旋转动画效果
Flash cs3仿真艺术设计5.6:图形元件的同步与不同步
Flash cs3仿真艺术设计5.7:图形元件的同步应用
Flash cs3仿真艺术设计5.8:铰连身体部分
Flash实例教程:用AS2代码制作图片循环效果
Flash实例教程:AS3代码简单表现照片底片效果
Flash cs3仿真艺术设计5.9:关闭缺口_完善角色肢体连接
Flash入门实例教程:图片不间断滚动动画效果
Flash AS2实例教程:鼠标感应放大缩小图片效果
Flash AS3实例教程:鼠标跟随炫舞线条动画效果
Flash AS2实例教程:制作360度全景动画效果
Flash cs3仿真艺术设计5.10:位图动画的表现
Flash cs3仿真艺术设计5.11:导入PSD文件
Flash AS3基础教程:物理基础之速度向量(Velocity)
Flash AS3.0菜鸟学飞教程:帧循环学习实例
Flash MX 视频导入功能详解(6)
Flash教程:视频导入与编辑
Flash cs3仿真艺术设计5.12:运动引导层制作布什搞笑动画
Flash cs3仿真艺术设计5.13:人物行走动画制作技巧

Flash动画制作 中的 Flash游戏制作:弹力球(3)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-22   浏览: 33 ::
收藏到网摘: n/a

二、游戏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
  //设置了小球所能