有烟没火 发表于 2009-3-1 14:27:00

Flash制作空战游戏(2)

二、元件的制作     1.新建一个场景“场景1”,选择“修改”菜单的“文档”选项,在弹出的文档属性对话框中背景色修改为黑色,尺寸就用默认的550*400,帧频为50 fps。
www.ad119.cn/bbs/attachments/websoft/20090301/20093114272048477801.jpg
  2.建立一个影片剪辑(以下简称MC),命名为“plane”,这个影片剪辑是作为用来控制的战斗机的。在该影片剪辑中的第一帧中插入一个关键帧,在编辑区中画一个飞机图形,也可以插入一个飞机矢量图。第一帧的帧动作为“stop()”。在第二帧处插入空白关键帧,画上一个矩形,矩形要比战斗机小很多。然后在第六帧中插入空白关键帧,画一个爆炸图形,在属性面板设置第二帧到第六帧的补间动作为“形状”,第六帧的帧动作为“gotoAndPlay(1)”。  3.新建一个MC元件“fire”,第一帧是一个空白关键帧,第二帧插入一个关键帧,画一个椭圆作为“plane”发出的用来射击的炮弹,帧动作为“stop()”。  4.新建一个MC元件“bullet”,把“fire”剪辑拖入编辑区中央,剪辑名称为“fire”,帧动作“stop()”。该剪辑编辑好后,在影片库中会出现其选项,用鼠标右击“bullet”选项,在弹出的快捷菜单中选择“链接”,标识符为“laser”,并勾选“为动作脚本输出”。
www.ad119.cn/bbs/attachments/websoft/20090301/20093114272053177802.jpg
  这是关键步骤,因为要用attachmovie调用库剪辑进行复制,如果没有这一步,attachmovie就无法中库中复制出剪辑,游戏运行时“plane”也将无法发出炮弹射击。然后在bullet剪辑中给“fire”设置动作代码: onClipEvent (load) {       //载入时发生动作
    n=_root.enemyNumber;   //画面中的敌人飞机数量赋值给n
    speed=10         //speed初始值为0
  }
  onClipEvent (enterFrame) {   //进入帧时发生
    Array()
    for(i=0;i<n;i){ 
      if(_root["new" i].ship1._currentframe==1){ //画面中的敌机是不是在其首帧
        if(this.hitTest(_root["new" i])) //判断该剪辑是不是与画面中复制出的敌机交迭
         {  _root.score =10  //如果交迭,生命值加10
            _root["new" i].ship1.gotoAndPlay(2);  //敌机爆炸
             removeMovieClip (_parent) ;//从场景中删除剪辑
         }
       }
    }
    if (_parent._x<=550) { //如果x坐标小于550 ,x坐标加变量speed 的值
      _parent._x= speed;
    } else {  //如果x坐标大于550,则删除剪辑
      removeMovieClip (_parent);
  }}  6.新建MC命名“explode”。在第一帧中画一个方形,然后在第五帧中插入空白关键帧,在该帧中用铅笔工具画一个爆炸图形,然后回到第一帧,在属性面板中设置该帧到第五帧的补间动作为“形状”。最后在第六帧插入一个空白关键帧,该帧设置命令“stop()”。如下图所示
www.ad119.cn/bbs/attachments/websoft/20090301/20093114272057877803.jpg
  7.建立MC元件“enemyplane”。在第一帧中画一个敌人飞机,并在时间轴上设置命令“stop()”,在第二帧插入空白关键帧,将刚才的explode剪辑拖入enemyplane剪辑中原来飞机的位置,在时间轴第二帧也设置stop()。  8.新建MC元件“enemy”,将enemyplane元件拖入第一帧,剪辑名称为ship1,帧动作为stop()。  9.接下来该做敌人发出的炮弹了,新建MC元件“ball”,在编辑区画上一个椭圆,大小要合适,因为这是用做游戏中发出的炮弹的。  10.最后新建两个按钮元件,一个“start”,另一个是“exit”。
页: [1]
查看完整版本: Flash制作空战游戏(2)