Flash专栏: 基础教程 | 技巧运用 | MTV实例教程 | 游戏实例教程 | 实例教程 | AS教程(new)
photoshop专栏: 基础 | 进阶 | 技巧总汇 | 精彩实例 | 文字特效 | 滤镜魔术 | 实际应用
网页设计: Dreamweaver教程 | FireWorks教程 | CorelDraw设计 | Freehand/Illustrator教程 | 音乐转换教程
其他教程: 操作系统 | 程序设计 | 网站开发 | 图形图像 | 数据库 | 网络技术 | 安全相关 | 认证考试 | 硬件知识 | 服务器
Flash专栏>flash游戏实例教程>Flash趣味游戏制作:猜数字   返回上一页

  日期:2003-12-19 17 作者:flashsj 来源:天极设计在线
天气预报 IP地址 手机号码 邮编 翻译 在线代理 在线评书 好dj


Flash趣味游戏制作:猜数字



  今天向大家介绍一款使用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) else {
      if (txt1 == shu2 or txt1 == shu3 or txt1 == shu4) //否则和游戏产生的其它3个数字比较,如果和其中一个相同,B数量增1
    }

    if (txt2 == shu2) else {
      if (txt2 == shu1 or txt2 == shu3 or txt2 == shu4) //否则和游戏产生的其它3个数字比较,如果和其中一个相同,B数量增1
    }

    if (txt3 == shu3) else {
      if (txt3 == shu1 or txt3 == shu2 or txt3 == shu4)
    }

    if (txt4 == shu4) else {
      if (txt4 == shu1 or txt4 == shu2 or txt4 == shu3) //否则,和游戏产生的其它3个数字比较,如果和其中一个相同,B的数量增1
    }

    if (txt1 == txt2 or txt1 == txt3 or txt1 == txt4)
    if (txt2 == txt3 or txt2 == shu4)
    if (txt3 == txt4) else {
      if (a == 4) 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)
  }
 6、在第10帧插入空白关键帧,设置帧标签为dd,设置如图7所示的警告界面:


图7

  给右下角的返回按钮添加Action:

  on (release) {
    txt1 = txt2=txt3=txt4=txta=txtb="";  //设置输入文本框为空
    gotoAndPlay("pd");  // 重新回到游戏状态
  }
  同时给此关键帧添加AS; stop();

  7、分别在15帧和20帧插入空白关键帧,设置游戏失败和胜利的提示画面,并设置帧标签分别为f(失败)和w(胜利),具体设置可以根据自己的意愿设置即可。最后给两帧都加上AS; stop();

  8、最后添加图层Action,用来设置游戏的主As。

  给第1帧添加如下AS;

  shu1 = int(random(9));
  shu2 = int(random(9));
  shu3 = int(random(9));
  shu4 = int(random(9));
  //上面4句都是取0到9之间的随机数,每此游戏开始确保数字不重复
  a=0;b=0;
  N=0;
  //定义并初始化3变量

  给第2帧添加如下AS;

  if (shu1==shu2 or shu1==shu3 or shu1==shu4)
    gotoAndPlay(1);
  if (shu2==shu3 or shu2==shu4)
    gotoAndPlay(1);
  if (shu3==shu4)
    gotoAndPlay(1);
  //上面的代码判断游戏产生的随机数是否有重复,如果重复,则返回到第1 帧//重新取数

  给第3帧添加如下AS,并且设置此帧标签为pd;
  stop ();//游戏停在此帧,等待玩家输入数字
  if (txt1==shu1)
    a=a+1;
  if (txt2==shu2)
    a=a+1;
  if (txt3==shu3)
    a++;
  if (txt4==shu4)
    a++;
  //上面代码的作用:如果输入的数分别和随机产生的数字每位都对应相同,则变//量a的值加1,这几句其实是用来确定游戏反馈信息*A*B中A的数量
  c=new Array(7);//建立一个含有7个元素的数组对象
  c[0]=c[1]=c[2]=c[3]=c[4]=c[5]=c[6]="";  //对数组中的7个元素分别赋值为空

  最后时间轴如图8所示;


图8

  这样,一个趣味的小游戏就制作完成了,发布出来考考自己的智力吧。


 
高手云集 版权所有 1998-2006