第2章 可控 游戏 类 2.4 梭 哈 游 戏(5) 第2章 可控游戏类 2.4 梭 哈 游 戏(5) ( 4 )单击按钮 ,新建一个图层,即“图层 2 ”,选中该层。选中第 1 帧,打开“动作-" name="description" />
(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拖入场景,使其位于5个card影片剪辑的下方;打开“属性”面板,将其命名为“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。
· 如果expression为undefined,则返回值为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
制作说明:
· on(press)的意思是在鼠标指针经过时按下鼠标左键,便执行下面大括号中的
语句。
· “〈〉”运算符的意思是不等于,如果两边的表达式相等,则结果为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++;
//定义变量Flush,Straight,HStraight和WinStatus,并分别将它们赋值为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.5,Y轴为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]);
}
}