选择显示字体大小

flash制作空战游戏(3)

、代码控制

  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()}

   }

  


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons