第2章 可控 游戏 类 2.4 梭 哈 游 戏(5) 第2章 可控游戏类 2.4 梭 哈 游 戏(5) ( 4 )单击按钮 ,新建一个图层,即“图层 2 ”,选中该层。选中第 1 帧,打开“动作-" name="description" />

第2章 可控游戏类 2.4 梭 哈 游 戏(5)

发表于:2007-05-26来源:作者:点击数: 标签:
MI LY: 楷体_GB2312" align="center"> 第2章 可控 游戏 类 2.4 梭 哈 游 戏(5) 第2章 可控游戏类 2.4 梭 哈 游 戏(5) ( 4 )单击按钮 ,新建一个图层,即“图层 2 ”,选中该层。选中第 1 帧,打开“动作-
MILY: 楷体_GB2312" align="center">
第2章 可控游戏

2.4 梭 哈 游 戏(5)

第2章 可控游戏类

2.4 梭 哈 游 戏(5)

    

4)单击按钮,新建一个图层,即“图层2”,选中该层。选中第1帧,打开“动作-帧”面板,在右侧的区域中输入下面的语句:

fscommand("showmenu", "false");

_root.chip = 0;

_root.addchip = 1;

_root.statu = 0;

_root.judge = 0;

_root.score = 10000;

//上面语句的意思是使除“关于flash player”外的所有上下文的菜单变暗,定义变量_root.chip_root.addchip_root.statue_root.judge_root.score,并分别将它们赋值为“0”、“1”、“0”、“0”、和“10 000

5)选中第2帧,执行菜单栏“插入”|“时间轴”|“关键帧”命令,插入一个关键帧。选中该关键帧,打开“动作-帧”面板,在右侧的区域中输入下面的语句:

stop();

_root.showbutton = 1;      //停止并设置按钮为可显示

6)在第3帧插入空白关键帧,选中该空白关键帧,打开其“属性”面板,将该帧命名为“cardvalue”;打开“动作-帧”面板,在右侧的区域中输入下面的语句:

value = random(54)+1;

if (value>52) {

             value = 53;

}

//产生一个1~54之间的随机整数,如果这个随机数大于52,就将这个随机数重新赋值为53,记录这个随机数的值,然后判断前几次的随机数是否有相同的,如果有相同的,就重新再执行一遍

pickedvalue = _root["b"+value];

if (pickedvalue == 1) {

call("cardvalue");

}

//判断value 值是否为1,如果等于1,就激活变量cardvalue

7)在第4帧插入空白关键帧,选中该空白关键帧,打开其“属性”面板,将该帧命名为“fail”;打开“动作-帧”面板,在右侧的区域中输入下面的语句:

stop();

8)单击按钮,新建一个图层,即“图层3”。把第1帧设置为空白关键帧,选中第2帧,插入关键帧,并选中该关键帧。单击工具箱中的“文本工具”按钮,用文本工具输入静态文字“总分”、“获得”和“下注”,文字大小为20 px,如图2-138所示。

2-138  输入静态文字

9)用文本工具输入一个动态文本,并输入“0”作为默认值,打开其“属性”面板,在“变量”文本框输入_root.score,如图2-139所示。

2-139  打开“属性”面板

10)单击工具箱中的“箭头工具”按钮,用箭头工具将这个动态文本框置于“总分”后面,如图2-140所示。

2-140  排列动态文本框

11)同样方法,用文本工具再输入一个动态文本,并输入“0”作为默认值,打开其“属性”面板,在“变量”文本框输入_root.statu,用箭头工具将这个动态文本框置于“获得”后面。

12)从“库”面板中将影片剪辑bettxt拖入场景,置于“下注”后面,如图2-141所示。打开“属性”面板,将其命名为“mask1”;打开“动作-影片剪辑”面板,在右侧的区域中输入下面的语句:

onClipEvent (enterFrame) {

            if (_root.score<_root.chip && _root.judge==0) {

                      _root.chip=0;

            }

}

//以影片的帧频不断判断游戏者下注的分数,看是否还有能力支付

2-141  拖入影片剪辑

13)选中“图层2”第2帧,从“库”中将影片剪辑hold-explain拖入场景,使其位于5card影片剪辑的下方;打开“属性”面板,将其命名为“explain”;单击工具箱中的“文本工具”按钮,用文本工具输入静态文本——游戏名称“梭哈游戏”,如图2-142所示。

2-142  拖入影片剪辑并输入游戏名称

14)将按钮help从“库”中拖入场景,打开“动作-按钮”面板,在右侧的区域中输入下面的语句:

on (release) {

         _root.help.gotoAndStop(2);

}

//在单击鼠标放开时,将按钮命名为“help”的播放头跳转到第2帧并停止播放

15)将按钮get从“库”面板中拖入场景,打开“动作-按钮”面板,在右侧的区域中输入下面的语句:

on (release) {

            if (statu != 0) {

                     score = Number(score)+Number(statu);

                     statu = 0;

            }

}

//用鼠标单击按钮时,判断游戏者有没有赢的分数,如果有,就将分数加到总分中,并将赢的分数清空

制作说明:Number(expression)的意思是将参数expression转换为数字,并按照如下规则返回一个值。

· 如果expression为数字,则返回为expression

· 如果expression为布尔值,则当expression返回为ture时,返回值为1;当

expression返回为false时,返回值为0

· 如果expression为字符串,则尝试将expression解析为一个带有可选尾随指数

的十进制数字,例如1.57505e= -3

· 如果expressionundefined,则返回值为0

16)将按钮add从“库”中拖入场景,打开“动作-按钮”面板,在右侧的区域中输入下面的语句:

on (press) {

if (_root.chip<_root.score && (_root.showbutton/2)<>Math.round(_root.showbutton/2)) {

                      if (_root.chip == 0 && _root.score>=_root.addchip) {

                             _root.chip = _root.addchip;

                      } else {

                             _root.chip++;

                      }

            }

}

//判断游戏者是否有分数可压,如果有,就将下注的分数加1

制作说明:

· onpress)的意思是在鼠标指针经过时按下鼠标左键,便执行下面大括号中的

语句。

· “〈〉”运算符的意思是不等于,如果两边的表达式相等,则结果为false;否

则返回ture

17)将按钮go从“库”面板中拖入场景,打开“动作-按钮”面板,在右侧的区域中输入下面的语句:

on (release) {

            for(var i=1;i<=5;i++){

                     _root["card"+i].gotoAndStop(2);

            }

//执行一个循环,目的是让场景中命名为cards的剪辑的播放头都跳转到第2帧并停止播放

Flush = 0;

Straight = 0;

HStraight = 0;

           WinStatus = 0;

           _root.showbutton++;

//定义变量FlushStraightHStraightWinStatus,并分别将它们赋值为0,将变量_root.showbutton自动加1

if ((_root.showbutton/2) == Math.round(_root.showbutton/2)) {

             for (var i = 1; i<=53; i++) {

                      _root["b"+i] = 0;

             }

             for (var i = 1; i<=5; i++) {

                      _root["hold"+i] = 0;

                      _root.attachMovie("lock", "lock"+i, i);

                      _root["lock"+i]._x = i*102.5-57.5;

                      _root["lock"+i]._y = 210;

                      _root["lock"+i].locker = i;

                      _root["lock"+i].gotoAndStop(1);

             }

             _root.judge = 1;

             _root.mask1.gotoAndStop(2);

             _root.explain.gotoAndStop(2);

             _root.score -= _root.chip;

} else {

             for (var i = 1; i<=5; i++) {

                      _root["lock"+i].gotoAndStop(2);

             }

             _root.mask1.gotoAndStop(1);

             _root.explain.gotoAndStop(1);

}

//判断_root.showbutton/2的值是否与Match.round(_root.showbutton/2)的值相等,如果是真,就将执行一个循环,目的是将变量_root["b"+i]都重新赋值为0,然后执行下面的一个循环

//将变量_root["hold"+i]重新赋值为0,从“库”面板中取lock并将其附加到舞台上,将附加的lock重新命名为"lock"+i,定义深度为i

//定义x轴为i*102.5-5.7.5Y轴为210

//定义在附加剪辑的变量locker重新赋值为i,将附加剪辑的播放头跳转到第1帧并停止播放

//将变量_root.judge重新赋值为1,将剪辑_root.mask1的播放头跳转到第2帧并停止播放,将剪辑_root.explain的播放头跳转到第2帧并停止播放,然后将变量_root.score_root.chip的值重新赋予变量_root.score

//如果为假,就执行一个循环,目的是将剪辑_root["lock"+i]的播放头跳转到第2帧并停止播放,然后将_root.mask1的播放头跳转到第1帧并停止播放,将剪辑_root.explain的播放头跳转到第1帧并停止播放

//执行上面的程序可以实现如下的功能:如果游戏没有开始,就开始游戏,将牌翻开,使打分和说明消失,在每个牌上附上一个透明的按钮,并将总分减去游戏者下注的分数;如果已经开始,就把5个透明按钮的播放头跳转到第2帧,并显示打分说明

for (_root.card=1; _root.card<=5; _root.card++) {

   if (_root["hold"+_root.card] == 0) {

     _root["cvalue"+_root.card] = 0;

     _root["suit"+_root.card] = 0;

     call("cardvalue");

     _root["b"+value] = 1;

     _root["cardvalue"+_root.card] = value;

     if (value<14) {

       _root["suit"+_root.card] = 1;

     } else if (value<27) {

       _root["suit"+_root.card] = 2;

     } else if (value<40) {

       _root["suit"+_root.card] = 3;

     } else if (value<53) {

       _root["suit"+_root.card] = 4;

     }

                   _root["cvalue"+_root.card] = _root["cardvalue"+_root.card]-(_root["suit"+_root.card]*13-13);

                   _root["card"+_root.card].cards.gotoAndStop(_root["cardvalue"+_root.card]);

         }

}


原文转自:http://www.ltesting.net