翻牌游戏制作过程
2008-09-24 来源:网络收集 作者:未知 点击: 评论:0 条
杜方锦
一、新建文档
启动 Flash CS3,新建一个名为“翻牌游戏”的 Flash 文件(ActionScript2.0)。本实例也
可用 Flash 8 软件制作。背景色自定,其他值默认。
二、制作元件
1、新建“正面”元件
(1)创建一个名为“正面”的影片剪辑元件,并进入该元件的编辑场景。
(2)把【图层 1】重命名为【图片】图层。在该图层的第 1 帧绘制一幅宽 45 像素、
高 60 像素的图形,把它相对于舞台左对齐
,上对齐
。并在第 2帧插入一个关键帧。
(3)在【图片】图层的第3 至第 11 帧分别插入一个空白关键帧。并在第 3 至第 11
各帧上分别画 9 幅不同的图形,其大小均为宽 45 像素 、高 60 像素,且都相对于舞台左
对齐
,上对齐
。
(4)插入【图层 2】,并把【图层 2】重命名为【AS】。选中【AS】图层第 1 帧,打开
“动作”面板,输入如下动作代码:
gotoAndStop(_parent.face+1);
“正面”元件的时间轴如下图所示:
2、新建“背面”元件
(1)创建一个名为“背面”的影片剪辑元件,并进入该元件的编辑场景。
(2)在【图层 1】的第 1 帧画一个宽 45 像素、高 60 像素的无边框黑色矩形,并把
它相对于舞台左对齐
,上对齐
。
3、新建“隐钮”元件
(1)创建一个名为“隐钮”的按钮元件,并进入该元件的编辑场景。
(2)在【图层 1】的【点击】帧画一个宽 45像素、高 60 像素的无边框任意填充色的
矩形,并把它相对于舞台左对齐
,上对齐
。
4、新建“卡片”元件
(1)创建一个名为“卡片”的影片剪辑元件,并进入该元件的编辑场景。
(2)插入四个新图层,把现有的五个图层自下而上重命名为【正面】 、 【背面】、【隐钮】 、
【帧标签】、 【AS】。
(3)编辑【正面】图层
① 在【正面】图层的第 5 帧插入一个空白关键帧,从库中拖一个“正面”元件到舞台
上,并把它相对于舞台左对齐
,上对齐
。
② 在【正面】图层的第 10、15、20 各帧分别插入一个关键帧,在第 55 帧插入一个普
通帧。
③ 先后选中第 5、 第 15帧上的 “正面” 元件实例, 分别在 “属性” 面板上把它们的 【宽】
设置为“1”像素(其高不变)。如下图所示:
2
④ 选中第 5 帧,在“属性”面板上创建补间“动画” ,选中第 10 帧,在“属性”面板
上创建补间“动画” 。锁定该图层。
(4)编辑【背面】图层
① 选中【背面】图层的第 1 帧,从库中拖一个“背面”元件到舞台上,并把它相对于
舞台左对齐
,上对齐
。
② 在【背面】图层的第 5 帧插入一个关键帧,在第6 帧插入一个空白关键帧。
③ 选中第 5帧上的“背面”元件实例,在“属性”面板上把它的【宽】设置为“1”像
素(其高不变)。选中【背面】图层的第 1 帧,创建补间“动画” 。
④ 把【背面】图层的第 5 帧复制到本图层的第 15帧上,把【背面】图层的第 1 帧复制
到本图层的第 20 帧上。选中【背面】图层的第 15 帧,创建补间“动画” 。锁定该图层。
(5)编辑【隐钮】图层
① 选中【隐钮】图层第 1 帧,从库中拖一个“隐钮”元件到舞台上,把它相对于舞台
左对齐
,上对齐
。
② 选中舞台上的“隐钮”元件实例,打开“动作”面板,输入如下动作代码:
on (release) {
cardOpened = _root.exposedCard.length/2;
if (cardOpened<2) {
_root.exposedCard.push(cardNum, face);
gotoAndPlay(2);
}
}
③ 锁定【隐钮】图层
(6)编辑【帧标签】图层
① 在【帧标签】图层的第 11、第 21 帧分别空白关键帧。选中第 11 帧,在“属性”面
板上输入帧标签为“turnBack” ,选中第 21 帧,输入帧标签为“delay” 。
② 锁定该图层。
(7)编辑【AS】图层
① 选中【AS】图层第 1 帧,输入如下动作代码:
var face;
var cardNum;
if (_global.first!= true) {
stop ();
}
② 在【AS】图层第 10 帧插入一个空白关键帧,选中该帧,输入如下动作代码:
function clearExposedCard() {
while (_root.exposedCard.length != 0) {
_root.exposedCard.pop(); //一个一个从最后删除数组元素。
}
}
num = _root.exposedCard[0];
3 if (_global.first == true) {
gotoAndPlay("delay"); //这个只在第一次开始游戏的时候调用。
}
if (cardOpened == 0) { //cardopened在点击隐形按钮时产生。
stop();
}
if (cardOpened == 1) { //加分和扣分
if (_root.exposedCard[3] == _root.exposedCard[1]) {
_root.score += 10;
_root["newcard"+num].removeMovieClip();
clearExposedCard();
this.removeMovieClip();
} else {
_root["newcard"+num].play();
_root.score-= 5;
clearExposedCard();
}
}
③ 在【AS】图层第 20 帧插入一个空白关键帧,选中该帧,输入如下动作代码:
_global.first=false;
gotoAndStop (1);
④ 在【AS】图层第 55 帧插入一个空白关键帧,选中该帧,输入如下动作代码:
gotoAndPlay ("turnBack");
编辑完成后“卡片”元件的时间轴如下图所示:
(8)为“卡片”元件链接标识符
在库面板中右击“卡片”元件名,在弹出的菜单上选择“链接” ,在弹出的“链接属性”
对话框上勾选【链接】里的“为 ActionScript 导出” ,将【标识符】改为“card ” ,最后单击
【确定】按钮。如下图所示:
4 5、新建“按钮”元件
(1)新建“开始”元件
① 创建一个名为“开始”的按钮元件,并进入该元件的编辑场景。
② 插入一个新图层,把现有的两个图层自下而上重命名为【图形】、【文本】 。
③ 在【图形】图层的【弹起】帧绘制一个宽 100 像素、高 25 像素的无边框绿色矩形,
并把它相对于舞台居中对齐。
④ 在【图形】图层的【指针经过】帧插入一个关键帧,并修改该帧上矩形的颜色。
⑤ 在【文本】图层的【弹起】帧健入“开始”两字,并相对于舞台居中对齐。
⑥ 在两个图层的【按下】帧分别插入一个普通帧。制作完成后的“开始”按钮元件时
间轴及舞台画面,如下图所示:
(2)新建“重新开始”元件
① 在库中的“开始”按钮的元件名上右击,选择“直接复制”命令,在弹出的“直接
复制元件”对话框上把【名称】修改为“重新开始” ,并单击【确定】按钮,如下图所示:
② 打开“重新开始”元件的编辑场景,把文本修改为“重新开始” 。
(3)新建“按钮”影片剪辑元件
① 创建一个名为“按钮”的影片剪辑元件,并进入该元件的编辑场景。
② 插入一个新图层,把现有的两个图层自下而上重命名为【按钮】、【AS】 。
③,从库中拖一个“开始”按钮元件到舞台上,把它相对于舞台居中对齐。选中舞台上
的“开始”按钮元件实例,打开“动作”面板,输入如下动作代码:
on (release) {
nextFrame();
_root.play();
}
④ 在【按钮】图层第2 帧插入一个空白关键帧,选中该帧,从库中拖一个“重新开始”
按钮元件到舞台上,把它相对于舞台居中对齐。选中舞台上的“重新开始”按钮元件实例,
输入如下动作代码:
on (release) {
_root.gotoAndPlay(2);
}
锁定【按钮】图层。
⑤ 选中【AS】图层第 1 帧,打开“动作”面板,输入停止动作“stop();” 。并把【AS】
图层第 1 帧复制到本图层的第2 帧上。
5 三、布置主场景
1、返回主场景,插入三个新图层,把现有的四个图层自下而上分别命名为【积分框】 、
【按钮】、【文本】、【AS】 。
2、编辑【积分框】图层
① 选中【积分框】图层第 1 帧,用【文本工具】
拉出一个动态文本框,放置在舞台
左下方。选中该文本框,在“属性”面板上输入【变量】命名为“score ” ,其它参数如下
图所示:
② 在【积分框】图层的第 3 帧插入一个普通帧,锁定该图层。
3、编辑【按钮】图层
① 选中【按钮】图层第 1 帧,从库中拖一个“按钮”影片剪辑元件到舞台上,放置于
舞台正下方。
② 在【按钮】图层的第 3 帧插入一个普通帧,锁定该图层。
4、编辑【文本】图层
① 选中【文本】图层第 1帧,用【文本工具】
键入静态文本,内容有标题、操作说
明、积分提示等等。如下图所示:
② 在【文本】图层的第 3帧插入一个普通帧,锁定该图层。
5、编辑【AS】图层
① 选中【AS】图层的第 1 帧,打开“动作”面板,输入停止动作“stop();” 。
② 在【AS】图层的第 2 帧插入一个空白关键帧,选中该帧,输入如下动作代码:
cardFront = new Array();
for (i=1; i<=20; i++) {
cardFront[i] = Math.round(i/2);
6 //产生一数组,0号和 1 号值一样,2 号和 3号值一样,依此类推。
}
for (i=1; i<=20; i++) {
tem = cardFront[i];
k = Math.floor(1+20*Math.random());
cardFront[i] = cardFront[k];
cardFront[k] = tem;
//随机交换值,cardFront[i]与 cardFront[k]交换值
}
for (i=1; i<=20; i++) {
_root.attachMovie("card", "newcard"+i, i);
with (_root["newcard"+i]) { //确定卡片位置
_x = 265+((i-1)%5)*50;
_y = 80+Math.floor((i-1)/5)*65
}
_root["newcard"+i].cardNum = i;
_root["newcard"+i].face = cardFront[i];
}
_global.first=true;
score = 0;
exposedCard = new Array();
③ 在【AS】图层的第 3 帧插入一个空白关键帧,选中该帧,输入停止动作“stop();” 。
四、测试、存盘、发布
2004 年 12月 3 日第一稿
2008 年 8 月18 日 重写于杭州
上一篇:Flash内置类Sound的一个小问题及解决方法
下一篇:没有了
下一篇:没有了
最新图文
最新评论
免责声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。对本文有异议,请联络本站!
转载要求:文章作者及来源信息必需保留。转载之图片、文件,链接请不要盗链到本站地址,且不准打上各自站点的水印。
热门关注
相关文章
Google提供的广告





