china.com
主页
新闻
体育
游戏
文化
教育
健康
财经
科技
旅游
军事
娱乐
商贸
  科技动态 硬件广场 下载基地 网络教室 网络冲浪 科学博览 移动时代 手机上网 桌面壁纸 科技商情  

第十课 Random随机函数的应用


    在FLASH的各种函数中,Random()随机函数也是一个非常有用的函数,我们可以用它来做出各种特殊的效果。例如做一个随机移动的图标,做出逼真的火焰、烟火等效果。而这一课,我们要学习用Random()函数来做一个FLASH的猜数字小游戏。开始这节课之前,我们先放松一下,玩一下右面这个游戏吧,祝你好运!

    好了,我们要开始做这个小游戏了。首先,还是按下Ctrl+M,把工作区定义成300*100。在Layer1层的第一帧中,如左图画上几个符号(Symbol,一个方框里的内容就转换成一个Symbol),注意,要把“简单”、“普通”和“高难”这几个图形转化成按钮符号(Button Symbol),这样,可以让游戏者通过按钮选择游戏的难度。

    接着是在Layer1层的第二帧插入一个空的关键帧,在这一帧里如右图画上提示和按钮。在这一帧中,下方的0……9这是个数字都要转换成按钮符号(Button Symbol),以便游戏者选择数字。而中间的那个方框,则是用文字工具(Text Tool)创建的文本域(Text Field),把这个文本域的属性变量的变量名定为num(选中文本域后在菜单种选择Modify -> Text Field -> Variable,具体方法参见前面的课程),如下图所示设置这个文本域的属性。


文本域的属性的设置

    现在轮到第三和第四帧了,在这两帧里,分别如左图画上答对和答错的结束画面。这两帧中右下方的“再来一次”也要做成按钮符号(Button Smbol)。这两帧的左边都有一个文本域,这两个文本域都是和第二帧的相同的。你可以在第二帧中选中文本域,然后在菜单中选择Edit -> Copy,然后到第三、第四帧中在菜单里选择Edit -> Paste粘贴,然后移动到合适位置即可。
第三帧,“猜对啦”
第四帧,“猜错了”


    接下来就是编写程序了,我们一帧一帧地来写。

    在第一帧中,首先把这一帧的Action设为Stop,这样就能让游戏者做出选择,选好难度后才进入游戏。接着,分别在“简单”、“普通”和“高难”三个按钮上单击鼠标右键,在弹出的菜单中选择Properties... -> Action为这三个按钮添入以下程序(下面的程序是以“简单”按钮为例的):

    On (Release)
       Set Variable: "chance" = 4
       Go to Next Frame
    End On

    如右图所示。

   这段程序主要是确定是以那种模式进行游戏,所以Set Variable所设的变量chance就是机会的次数,Go to Next Frame是进入下一帧(开始游戏)。所以,“普通”和“高难”两个按钮的程序也是类似的,只是机会的次数要相应地设少一些,“普通”模式中,chance的值赋成2,“高难”则赋成0。


    第二帧,则是这个游戏里最关键的一帧,主要负责了游戏的数据的生成和判断,所以,可得仔细一点呀!

    首先,把这一帧的Action作如下设置,进行数据的初始化:

    Set Variable: "num" = "?"
    Set Variable: "wrong" = 0
    Stop


    其中,num就是文本域的属性变量,我们先赋一个“?”给它,表示不确定的值。变量wrong则是纪录选错数字的次数,以便和chance比较,决定是否要结束游戏。

    接着,我们要给这一帧中的十个数字按钮加上程序。这些程序的功能都是一样的——判断随机生成的num得知是否与按下的数值相同,然后根据结果的不同做出条转的选择。要是我们给每一个按钮都写上同样的程序,那么我们的工作量就会成倍地增加。我们能不能象C语言那样,编写一段子程序(Sub Program)在用到这段程序的时候调用它呢?当然可以的,下面我们就来看看我们应该怎么做。

    在第五帧添加一个空的关键帧。在这一帧的Action中写入这一段子程序:(如左图所示)

    Set Variable: "num" = Random (10)
    If (num=i)
      Go to and Stop ("right")
    Else
       If (wrong=chance)
        Go to and Stop ("wrong")
      End If
      Set Variable: "wrong" = wrong+1
    End If


    第一句中,Set Variable: "num"=Random (10)意思是随机产生0-9之间的一个数字(Random (n)就是产生0 - (n-1)之间的一个数字)。判断中涉及到的变量i则是纪录按下了那个按钮。而跳转到"right"和"wrong"则分别是第三第四帧的卷标(Label),是结果而定跳转到正确或错误的结束画面。当然如果选的数字是错误的,wrong变量还要自加一。

  当然,我们不能忘了在第二帧中调用第五帧中的程序,所以我们还要给第五帧取一个卷标(Label)就像C域严重的函数名(Function Name)一样。我们把第五帧的Label定为program(在Timeline区第五帧的方格点右键,在弹出的菜单中选择Properties... -> Label,在Label项中填入program)。然后,回到第二帧,分别选择十个按钮,给它们加上这么一段Action代码(以数字0的按钮为例):

    On (Release)
      Set Variable: "i" = 0
      Call ("program")
    End On


    如果是其他数字按钮的话,只要把变量i的数值修改以下即可。如按钮1,则i赋1,按钮2,赋2,以此类推。

第五帧的Action
Scene的Timeline区
第二帧中按钮0的Action

 


    最后是第三和第四两帧。这两帧比较简单,首先把这两帧的卷标(Label)分别定义成right和wrong,接着我们只要分别给这两帧中的“再来一次”按钮加上这么一段程序,让它跳回第一帧就可以了:

    On (Release)
      Go to and Stop (1)
    End On

    如右图。


    啊,漫长的一课,终于完工了。来,按下Ctrl+Enter,玩一下你自己做的FLASH小游戏吧。虽然很简单,但这毕竟是你自己做的呀。那么,我们一起进入下一课——简单的FS Command控制吧!

 

  摘自《你的网》 孤独过客/文

 


科技检索


中华网推荐

  • 1000名医生在线咨询

  • 中国足球队官方网站

  • 鸦片玫瑰(新版)

  • 精选股票天地

  • 闪光的flash教程

  • 中华网汽车世界

  • 为你的爱情出谋划策

  • 网文精选——野百合集

  • 世界文化遗产在中国

  • 历届香港小姐风姿集




  • 网络教室编辑信箱
    版权声明 | 本站检索 | 联系方法 | 刊登广告 | 使用说明 | 关于中华网 | 豁免条款

    版权所有 中华网