快速业务通道

Flash制作空战游戏

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-14
本框和两个动态文本框,用来表示生命值和得分。静态文本框内的内容分别是“生命”和“得分”,第一个动态文本框命变量值为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
 

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号