站长中国
设为首页 | 站长论坛

站长论坛 站长下载
您所在的位置: 站长中国 > 站长学院 > 网络媒体 > Flash > 正文

Flash制作空战游戏(三)
  2007年09月24日02:28:44  评论(0条) 字体:[ ]
相关热点:

  三、代码控制

  1.回到主场景,把第一个图层改名为“start”,在第一帧中插入关键帧,帧动作为:

  function clean() {
     for (i in _root) {
         _root[i].removeMovieClip();
     }
  }
   _root.clean();
   stop();

  clean函数用来删除所有多余的影片剪辑,它的功能在第一次运行时没有作用,而在游戏运行后,“plane”的生命值为零时返回这一帧,如果没有clean函数,将出现无数个被复制的影片剪辑。

  2.把“start”按钮和“exit”按钮拖入场景中,“start”按钮的动作脚本为

  on(release){ //释放鼠标时进入第三帧,开始游戏
     gotoAndPlay(3);
   }

  “exit”按钮的动作脚本为

   on (release) { //释放鼠标时,退出游戏
         fscommand("quit", "1");
   }

  3.添加第二层,命名为“victor”,在该层第二帧中插入关键帧,在场景中用文字工具写入“you win”,设置字号为84,颜色为黄色。也插入“start”和“exit”按钮,动作脚本同上。

  4.添加第三层,命名为“action”,在该层第三帧插入关键帧,写入代码如下:

  enemyNumber=5  //每次画面中出现五个敌人
    for(i=0;i<enemyNumber;i++) { //如果画面中敌人数小于五,则复制出敌人的影片剪辑
     duplicateMovieClip("enemy","new"+i,30+i)
   } 
  life=100   //生命值为100
  score=0;   //开始得分为 0
  stop( );

  5.在该帧场景中添加两个静态文本框和两个动态文本框,用来表示生命值和得分。静态文本框内的内容分别是“生命”和“得分”,第一个动态文本框命变量值为life,第二个动态文本框的变量值为score。

  6.再增加两个图层,一个命名为 “plane”,一个命名为“enemy”,并分别在第三帧插入关键帧。选中“plane”层的第三帧,把“plane”拖入,剪辑名称为“ship”。选中“enemy”层的第三帧,把“enemy”和“ball”剪辑拖入,剪辑名称分别为“enemy”和“enemylaser”。

  右击“plane”剪辑,在动作面板里写入代码:

  onClipEvent (load) {  //载入时进行初始化
    speed=6;
    sy=_y;
    ang=0;
   } 

  onClipEvent (enterFrame) {
     _y = sy + 4 * Math.cos(ang+=0.092); //用cos函可以是飞机有在空中飘动的效果
     c=_root . score;        //给c 变量赋值,初试状态为“0”
     if(c>=500){         //如果c的值(得分)大于500,则胜利结束游戏
       _root.gotoAndStop(2);
     }                     
     if(_root.life<=0){       //如果生命值小于0,则重新开始游戏或退出
       _root.gotoAndStop(1);

     }

  //当玩家按下上、下、左、右方向键时,飞机可以移动           

     if (Key.isDown(Key.down)and _y<400) {_y += speed; sy+=speed}
     if (Key.isDown(Key.up) and _y>0) {_y -= speed; sy-=speed}
     if (Key.isDown(Key. right) and _X<550) {_x += speed;}
     if (Key.isDown(Key.left) and _X>0) {_x -= speed;}
     if (Key.isDown(Key.space)) {//当按下空格键时,飞机开火,用了一个变量a,使每按一下空格发出一发炮弹,如果不设置这个变量,那么当按下空格键时,炮弹将连续飞出。
       if (!a) {      //如果a为false
         shotCount++;
         depth=(shotCount%100)+100
         _root.attachMovie("laser", "sparo"+shotCount, depth); //attachmovie方法是从库中直接调用复制影片剪辑“fire”,它的标识符为“laser”。
         _root["sparo"+shotCount]._x = this._x+(_width-45)
         _root["sparo"+shotCount]._y = this._y;  //复制出的“fire”剪辑的初试位置。         a = true;

        }
      } else {a = false;}
   } 

  7.右击“enemy”剪辑,在“动作”面板里设置代码

  onClipEvent (load) {  
     sy=random (400)+10; //取随机数
     function reset(){
       ship1.gotoAndStop(1);
       speed=random(10)+2; //敌机的飞行速度是一个随机数
       _y= random(300)+_height; //敌机的初始y坐标取随机数
       _x= 550+_y;  
       _root.firePower=100 ;

     }
     reset()
   }

  onClipEvent (enterFrame) {
    if(this.ship1._currentframe==1){ //敌机剪辑在第一帧
      _y = sy + speed * Math.cos(speed+=0.032); //敌机飞行时有浮动的效果
      if(this.hitTest(_root.ship)){ //如果该剪辑与战斗机相撞
         ship1.gotoAndStop(2); //敌机爆炸
         _root.ship.play(); 
         _root.life-=10; //生命值减10
      }
      if(random(_root.firePower)+1==10){
        Count++;
        depth=(Count%100)+200;   //敌机飞行时发出炮弹
        duplicateMovieClip(_root.enemyLaser, "num"+Count, depth);
        //炮弹的初始坐标就是敌机当前所在位置的坐标
        _root["num"+Count]._x=this._x-40
        _root["num"+Count]._y=this._y 
      }
     }
     _x-=speed
     if(_x<-10) { reset()}

   }






收藏本文 打印 打印本文  推荐本文 告诉好友 投稿 投稿邮箱

站长排行

学院

新闻

专栏

盈利

[揭密网络黄链]中国留学生买凶专破日本
windows 2008中文版iis7+asp+php+Acces
贴吧发帖机使用教程(绝对原创)
超强弹出窗口代码,什么都挡不住
Windows Vista局域网网络连接设置
JSP语法(6)
FLASH视觉特效实例之地震效果
关于数据分页(转自www.codeproject.co
教你如何在Vista中设置麦克风
不用Photoshop 在线恶搞大头像
全国哀悼日网友自发QQ隐身上线 向死难
淘宝网卖家公然叫卖“艳照门”照片集
抗震救灾/鱼目混珠?
Google绿色专家质疑黑色背景网页节省资
阿里妈妈广告卖主全攻略
电影小说类相关关键字搜索量列表
爆笑 阿里就这样把亿告征服!
大脚:实战单页面优化关键词之——淘宝
国内各IT企业办公环境揭秘(多图)
心系灾区,点燃希望——手机QQ2008祈福
ECSHOP模板制作参考文档
悬挂阿里妈妈会否被百度惩罚
ECSHOP模板下载
阿里妈妈是否是中小站长的救世主?
最强网店ECShop发新版 众多酷炫功能给
土豆网,优酷网,爆米花等视频网站采集
DedeCms模板安装/制作概述
网上商店系统巅峰对决 ECShop vs ShopE
编程中国全站采集规则
http://www.mt86.com全站采集规则
性福联盟 一个不尊重站长的联盟
百度网络广告利润增长将会持续多久
大脚:日赚100元—揭露最新firefox欺骗
分享经验:个人网站如何月赚1万!
大脚:垃圾站超级赚钱法之二—突破“站
迅雷联盟、快车联盟收入对比
大脚:垃圾站超级赚钱法之——前言
Google Adsense的秘密 第二版
风险投资公司vc联系方式名录大全(一)
经理人必看的十个管理网站
站长学院  网页设计 建站教程 图形图象 网络编程

制定完整的网站
制定完整的网站
中国企业网站的
中国企业网站的

网站运营之怎么样来粘住你的用
网麒:网站建设创意
怎样提高网页快照更新
两种方法,教你如何通过微软正
英文网站优化细节
利用SSL加密增强FTP服务器的安
网页设计常用Javascript经典代

新闻线索

如果你有站长界人事变动、重组并购、变革技术出现,以及产品投诉等重要新闻线索,请告诉我们,我们会给予特别关注。
0631-3653338
站长中国编辑部
站长中国24小时新闻热线: 13156089008