设为首页 加入收藏 网站搜索 繁體中文 中国建站网 — 站长资源分享平台

Flash趣味游戏制作:猜数字

来源:136z.Com 作者:佚名 时间:2005-03-12 23:12:21
 

  今天向大家介绍一款使用Flash制作的有趣的小游戏:猜数字。这个游戏是许多PDA和手机上的必备游戏之一,深受大家的喜爱。



  游戏规则:每次游戏开始前都会产生一个随机的四位数,你的任务就是根据游戏对你每次试探给出的反馈不断试探,力图用最少的试探次数猜出正确的答案。

  在游戏界面的左下角可以输入四个数字,但是不能有重复的数。输入后按右边的确定按钮(这里是“GO”),游戏会对你的输入和程序产生的数进行判断,如果有n个数字的值正确且位置正确,会显示nA;如果有n个数字在四个随机数范围内,但是位置不对,则提示nB。如果最后提示为4A,则你的判断完全正确。

  游戏演示如图1 所示:


图1

  一、界面制作

  1、首先在Flash中新建一个影片,将影片默认图层命名为bg,在第3帧插入关键帧,使用绘图工具绘制图2所示的游戏背景,并将图层延续到第20帧。


图2

  2.在bg层上面插入图层input,在第3帧插入关键帧,使用矩形工具绘制一个带变框的正方形,并复制3个副本,按照图3所示的顺序排列好,作为游戏数字输入框的背景。


图3

  3、在input上插入图层inputbox,在第3 帧插入关键帧,使用文本工具绘制四个文本框,大小和前面所绘矩形相同,在属性面板中设置为输入文本框,然后从左到右排列好,分别放置在四个正方形上面,并设置文本变量名为txt1到txt4,如图4所示:


图4

  4、新建一个图层ab,在第3帧插入关键帧,在此层用来设置游戏对玩家输入数字的反馈信息。先用矩形工具绘制一个无填充色的矩形边框,然后使用文本工具在矩形框里绘制两个动态文本框,分别设置变量名为txta和txtb,然后分别在两个文本框右边输入字母A和B,如图5所示:


图5

  5、再添加一个图层info,在第3帧插入关键帧,使用文本工具绘制七个动态文本,从上向下排列,分别设置其文本变量为t1到t7,用来显示每此游戏的所有提示记录,也就是每次有7次猜数的机会。然后再绘制一个动态文本框,放置在界面的最右面,设置其文本变量为txtwin,用来显示最后的正确答案,最后在舞台右下角制作一个确定按钮,每此输入完输入后,按下这个按钮就可以进行数字的判断,如图6所示:



图6

  下面进入AS代码编写。


  二、代码的编写

  给确定按钮添加如下Action:

  //下面代码的主要功能是:对玩家输入的数字和游戏产生的数字进行比较,从而得出*A*B的结论,即提示玩家几个数字猜对,几个猜错。

  on (press) {
    a = b=0;  //初始化变量a,b的值为0,a,b分别代表了A和B的数量

    if (txt1 == shu1) {
      a++;  //如果玩家输入的第1个数字和游戏产生的第1个数字相同,
          //则A的数量增1
    } else {
      if (txt1 == shu2 or txt1 == shu3 or txt1 == shu4) {
        b++;
      }//否则和游戏产生的其它3个数字比较,如果和其中一个相同,B数量增1
    }

    if (txt2 == shu2) {
      a++;  //如果玩家输入的第2个数字和游戏产生的第2个数字相同,
          //则A的数量增1
    } else {
      if (txt2 == shu1 or txt2 == shu3 or txt2 == shu4) {
        b++;
      }//否则和游戏产生的其它3个数字比较,如果和其中一个相同,B数量增1
    }

    if (txt3 == shu3) {
      a++;  //如果玩家输入的第3个数字和游戏产生的第3个数字相同,
      //则A的数量增1
    } else {
      if (txt3 == shu1 or txt3 == shu2 or txt3 == shu4) {
        b++;//否则和游戏产生的其它3个数字比较,如果和其中一个相同,B数量增1
      }
    }

    if (txt4 == shu4) {
      a++;  //如果玩家输入的第4个数字和游戏产生的第4个数字相同,
          //则A的数量增1
    } else {
      if (txt4 == shu1 or txt4 == shu2 or txt4 == shu3) {
        b++;
      }//否则,和游戏产生的其它3个数字比较,如果和其中一个相同,B的数量增1
    }

    if (txt1 == txt2 or txt1 == txt3 or txt1 == txt4) {
      gotoAndPlay("dd");
    }
    if (txt2 == txt3 or txt2 == shu4) {
      gotoAndPlay("dd");
    }
    if (txt3 == txt4) {
      gotoAndPlay("dd");
      //上面三个if语句对玩家输入的数字进行判断,如果4个数字之间有相同的数,跳到dd帧,警告玩家输入非法
    } else {
      if (a == 4) {
        gotoAndPlay("win");
        //如果此时判断a的值为4,也就是A的熟练达到4个,则玩家全部判断对了,跳到帧win显示胜利信息
      } else {
        txta = a;
        txtb = b;
      }//如果游戏没结束,既玩家没全部判断对,设置txta和txtb两个文本框的值为A和B的数量
    c[n] = "第"+(n+1)+"次"+a+"A"+b+"B";
    //设置游戏反馈字符串,提示当前的信息,其中n为变量
    t1 = c[0];
    //将c[n]中的变量替换为0,显示"第1次*A*B的信息",下面的代码作用相同
    t2 = c[1];
    t3 = c[2];
    t4 = c[3];
    t5 = c[4];
    t6 = c[5];
    t7 = c[6];
    N++;
   }
  }

  on (release) {
    txt1 = txt2=txt3=txt4="";  //释放此按钮后,清空四个输入文本框,等待用户重新判断
    if (n == 7 and a != 4) {  //如果已经判断了7次,A的数量还没达到4,则游戏失败
      gotoAndPlay("f");
    }
  }

[1] [2]  下一页

Tags:

  • 好的评价 如果您觉得好,就请您
      0%(0)
  • 差的评价 如果您觉得差,就请您
      0%(0)
  • 相关文章
    广告赞助

    文章随便看看 设计素材 建站学院 网页模板 视频教程

    网友评论

    共有 0 位网友发表了评论,得分 0 分,平均 0 分    查看完整评论

    用户名: 查看更多评论

    分 值:100分 85分 70分 55分 40分 25分 10分 1分

    内 容:

             通知管理员 验证码: