Flash游戏开发实例系列.doc_第1页
Flash游戏开发实例系列.doc_第2页
Flash游戏开发实例系列.doc_第3页
Flash游戏开发实例系列.doc_第4页
Flash游戏开发实例系列.doc_第5页
免费预览已结束,剩余28页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Flash游戏开发实例系列:打小狗在Flash游戏中,打小狗(老鼠等)游戏是比较基础的游戏了。如果对Flash游戏设计有兴趣的朋友,想学习如何用Flash来制作游戏的朋友,可要好好学习这个游戏的制作哦。因为该游戏中使用的都是一些比较基础的、基本的和常用的ActionScript脚本语言。另外,我们也可以从中学到Flash游戏策划、设计到制作完成的一些概念、方法和技巧等知识。游戏原理:首先,游戏通过startdrag()、Mouse.hide()来改变隐藏原来的鼠标,把原先的鼠标换成菜刀,这样砍起来才过瘾嘛:)。使用Math.ramdon()并配合遮罩技术使小狗能随机得出现在洞口。最后的总分会在一个输入文本框中显示出来,见图1所示。游戏玩法:游戏的玩法很简单,相信大部分读者都应该知道。就是先移动鼠标到小狗的头上,然后安下鼠标左键,击中小狗就得分,否则得分为0。玩这个游戏的意义就在于,看谁能在一定的时间限制内,得到最多的分数,以测验谁头脑反应的最块,谁操作鼠标最灵活。游戏定义:在设计游戏前,总需要考虑这样几个问题,游戏环境的形成、规则的创建以及如何编写游戏的代码。但幸运的的是,这个打小狗(老鼠等)的游戏定义起来并不复杂。1游戏环境。首先要考虑的是游戏在怎样的一个环境中进行。这是实现一个简单的顺序游戏最关键的部分。该游戏中,通过随机的方法来让小狗出现,这一点确保了游戏的可玩性。对游戏而言,可玩性是很重要的,没有可玩性的游戏是不会有玩家去玩第二次的。2控制方法。玩家如何控制游戏中的角色,操作是否方便有决定了游戏的可玩性。我们可以设定许多行为方法来控制游戏主角的运动。在该游戏中,主要是让玩家能够自由的控制鼠标。3游戏结束。游戏中最困难的事情之一就是判定游戏是否结束。当游戏运行一段时间后,游戏将会停止,并在动态文本中显示出玩家的最后得分。游戏制作:打开Flash MX,设置场景大小为400px360px,背景色为#006699,帧频为15fps。在游戏制作之前,为了让大家有一个整体的感觉,并在以后的设计中做到心中有数,所以笔者在游戏设计制作前先让大家看看游戏主场景中层与帧的结构关系。如图2所示。 图2设计元件。1设计小狗。按快捷键Ctrl+F8打开“创建新元件”面板新建一个名为“小狗”的影片剪辑元件。然后可以手绘或者导入一个小狗头的图像,如图3所示。 图3,图42设计黑洞。同上方法新建一个名为“洞”的影片剪辑元件。然后在其场景中使用“椭圆”工具绘制一个黑色的椭圆(不要边线),如图4所示。3设计菜刀。新建一个名为“菜刀”的影片剪辑元件。在“菜刀”元件把“图层 1”改名为“菜刀”层,见图5(菜刀读者可以自行导入)。点选第1帧,按F9,在弹出的“动作”面板中输入如下代码:stop();Mouse.hide();图5 点选第2帧,按F6键插入关键帧,然后按快捷键Ctrl+T打开“变形”面板使菜刀发生20度旋转,见图6。 图64设计小狗运动。1按快捷键Ctrl+F8新建一个名为“小狗运动”的影片剪辑元件,然后从库中“小狗”元件到“小狗运动”元件的场景中。2在元件“小狗运动”的场景中点选“图层1”的第5、10、20、25帧分别插入关键帧,然后选中第10帧,将此帧上“小狗”对象的位置向上移动大约50px,鼠标右键点选第5到10帧间任一帧,选择“创建补间动画”命令,建立运动渐变动画,如图7所示。在第20到25帧也建立一个运动渐变动画,见图7,只是小狗运动是向下的。 图73新建一个名为“点击”的按钮元件。在元件的“点击”帧上按F6创键关键帧,然后用“矩形”工具绘制一个矩形,作为隐形按钮的控制区,如图8所示。 图84在“小狗运动”元件的场景中新建一个“图层 2”。在“图层 2”的第5帧插入关键帧,从库中拖动“点击”按钮元件到“图层 2”上,删除该层中第21到25帧之间的所有帧,如图9所示。 图95再新建一个“图层 3”,在该层的第1、5、20帧分别建立空白的关键帧。点选第1帧,按F9打开“动作”面板输入代码“stop();”。点选第5帧,在“属性”面板中将该帧的标签名设置为up,如图10所示。同样将第20帧的标签名设为down。 图10设计场景1。1回场景1,将“图层 1”改名为“背景”。接着从库面板中把元件“洞拖放到场景1中的第1层,然后分别复制9个相同的对象,按快捷键Ctrl+K打开“对齐”面板,把9个“洞”排好,如图11所示。接着用“文本”工具在场景的右下方输入“得分”两个字(静态文本)。 图112新建一个“小狗”层,接着从库中将“小狗运动”元件拖到该层中,然后再复制出9个,位置如图12所示。 图123新建一个“遮罩”层,在元件“洞”的上方绘制一个矩形。注意,矩形应该比“小狗运动”元件大点。同样复制9个。鼠标右键单击该层,在弹出的菜单中选择“遮罩层”命令。如图13所示。图134点选“小狗”层上的第一个(左上角的)“小狗运动”元件,在“属性”面板中将其实例名改为“dog0”,然后同样将其它的“小狗运动”对象命名为dog1、dog2dog8。5新建一个“脚本”层,点选第1帧,打开“动作”面板,输入代码“stop();”。在第5帧插入关键帧,输入如下代码:/ random(9)是从0-9中任取一数/ gotoAndPlay(up)是让游戏跳转到up帧运行,实现小狗的随机出现_rootpig add random(9).gotoAndPlay(up);6把“菜刀”元件拖到背景层中,在“属性”面板中起实例名为knife,在“脚本”层的第4帧插入关键帧,输入一下代码:/ mouse.hide()把默认的鼠标隐藏起来。mouse.hide();startDrag (knife, true); 设计记分系统。1在场景 1“脚本”层的第1帧输入如下代码:ROUND = 0;SCORE = 0;TATAL = 0;stop();2点选“标签”层的第5帧,在“属性”面板上定义该帧的标签名为again,然后在“脚本”层的第22帧输入代码:ROUND+;if ( ROUND11 ) gotoAndPlay (again);当ROUND小于11时将不断循环。游戏的计分方式为越快击中小狗分数越高。在场景 1中新建一个“分值”层,在第5帧插入一个空白关键帧,输入“POINT = 100;”在第20帧也插入一个空白关键帧,输入“POINT = 0;”,如图14所示。 图143在场景1中新建一给“分数”层,用“文本”工具拖出一个文本框,接着在“属性”面板中设置文本框为“动态文本”,变量名为score。如图15所示。 图15在“标签”层的第22帧输入如下代码:Tatal += Point;Score = Tatal;其中Tatal为总分,Score = Tatal使得文本框中可以显示现在的玩家的得分。那游戏怎么知道玩家是否打中了小狗呢?下面我们就要在“小狗运动”元件中加入的“点击”按钮元件。然后点选“点击”按钮,按F9打开“动作”面板,输入代码:on (release) 这段代码是在该按钮被鼠标点击时,影片跳至down帧开始播放,而场景1则跳转至End帧播放。 图16设计场景2。其实,场景2是很容易设计的,如图16所示。第第25帧的代码是“gotoAndPlay(1);”。由于篇幅关系,场景2具体的由读者参考源文件自行设计。Flash游戏制作-五子连珠五子连珠,在民间俗称”五子棋”,是一种流传很广的益智棋类游戏,游戏规则非常简单,适合各个年龄段的朋友玩,相信大家以前也一定玩过此游戏,传统的玩法是两玩家在围棋棋盘上进行比赛,这里玩家的对手将变成电脑,想不想和电脑过过招呢?下面我们就来学习使用Flash制作五子连珠这个游戏。游戏的主界面如图1所示:图1游戏玩法:五子连珠这个游戏需要由两位选手一起来完成,其中一位是电脑,电脑在游戏中使用黑棋比赛,您在游戏中使用白棋进行比赛,游戏的目的是尽量将自己的棋在棋盘上排列成五颗棋子连在一起的直线,水平方向,垂直方向或者斜向都可以,但是不能有拐点,必须是一条直线,哪一方先连好,则胜利。玩家在游戏中一方面要尽量将自己的棋子连起来,另一方面也需要阻碍对手进行连子,不让对手轻易的将棋子连起来,直到有一方先连好五颗棋子,则游戏结束。游戏中为了防止一方没有看清对方上一步的落子位置,在棋盘的右上角将显示上一步的落子位置,棋子的位置根据棋盘上的横纵标识来决定(横向为1-15,纵向为A-O)。游戏制作思路:本游戏制作起来有一定的难度,难度的关键在于玩家中有一方是电脑,如何合理的控制电脑走棋是最关键的部分。如果要实现电脑的自动计算棋局和决定落子位置,就需要用到一些Ai(人工智能)方面的知识,在游戏制作中会详细讲解。棋类游戏一般都会在一个二维的棋盘上进行,所以自然的就会使用二维数组来记录棋子的位置和决定落子的位置,数组在棋类游戏中也是应用非常的广泛。游戏制作步骤:下面我们就来开始具体的游戏制作步骤:游戏素材的准备:1 棋子的准备:棋类游戏当然少不了棋子,本游戏中需要两类棋子,一种为黑色棋子,一种为白色棋子,默认情况下电脑使用黑色棋子,我们可以从外部导入两副棋子图片,也可以在Flash中进行手工绘制。本实例中我们就来自己制作两个棋子。新建一个Graphic组件,并命名为black graphic,使用椭圆工具绘制一个圆形,并填充上黑色,这样一个简单的黑色棋子就做好了,如图2所示:图2因为我们需要在游戏中使用Action对棋子进行控制,所以需要将上面做好的Graphic组件转换为Movie clip类型的组件。所以新建一个movie clip组件,命名为black,将组件black graphic拖到组件black的编辑区即可。按照同样的方法制作一个white graphic组件,并绘制一个白色的棋子,然后在建立相应的white movie clip组件,绘制好的白色棋子如图3所示:图32 控制按钮的制作:游戏中需要使用鼠标将棋子落到棋盘上,所以需要使用按钮结合棋子的方法,因为游戏中我们看到的实际是棋子,但是控制的是按钮,所以这里我们只需要制作一个简单的隐形按钮即可,按钮大小和棋子大小相似,如图4所示:图4当游戏结束后还需要有一个Replay按钮允许玩家重玩游戏,所以可以建立一个简单的按钮,用来控制游戏的再次运行,Replay按钮如图5所示:图53 控制游戏的MC:棋类游戏中少不了大量的Action程序控制,为了便于对游戏进行控制,一般将Action放在专门的Movie clip中,然后就可以在游戏的任何地方调用了。A:新建一个Movie clip组件,命名为blk,进入组件编辑状态后,在第一关键桢添加如下AS:stop();function makelist(maker) /自定义函数makelist,参数为maker,其作用是生成一个列表if (maker =white) /如果传递进函数的参数是whitecolor = 2;color_bad = 1;/设置两变量值 else /如果传递进函数的参数是blackcolor = 1;color_bad = 2;/设置两变量值for (i=0; i15; i+) /外循环,循环变量为I,循环次数为15次for (j=0; j15; j+) /外循环,循环变量为j,循环次数为15次,两次循环共15*15此,正好等于棋盘的大小,用来设/置棋盘if (_root.tableij 0) /table数组用来检查棋盘是否为空,为空,相应的值为1,否则为0for (k=0; k4; k+) if (maker =white) _puteri*15+jk = 0; else_root.playeri*15+jk = 0;/若前一步的落子为白棋,则后一步计算机落子,否则玩家落子 else /如果棋盘为空for (k=0; k4; k+) x = i;y = j;score = 5;while (_root.tablex+_root.dirk0y+_root.dirk1 = color) and (x+_root.dirk0 = 0) and (y+_root.dirk1 = 0) x = x + _root.dirk0;y = y + _root.dirk1;score = score * 2;if (_root.tablex+_root.dirk0y+_root.dirk1 = color_bad) and (x+_root.dirk0 = 0) and (y+_root.dirk1 = 0) score = score / 2;x = i;y = j;while (_root.tablex+_root.dirk+40y+_root.dirk+41 = color) and (x+_root.dirk+40 = 0) and (y+_root.dirk+41 = 0) x = x + _root.dirk+40;y = y + _root.dirk+41;score = score * 2;if (score 30) score = score * 2;if (_root.tablex+_root.dirk+40y+_root.dirk+41 = color_bad) and (x+_root.dirk+40 = 0) and (y+_root.dirk+41 = 0) score = score / 2;if (maker =white) _puteri*15+jk = score; else _root.playeri*15+jk = score;/初始化棋盘,根据上一步落子的不同,来计算一下一步的落子B:再新建一个Movie clip组件,命名为blk2,进入组件编辑状态后,在第一关键桢添加as:stop();在第六桢插入一个关键桢,并添加如下AS:if (_root.playnow = computer) / 如果先落子的为电脑,则初始化棋盘_root.func.makelist(white);_root.func.makelist(black);/分别调用前面定义的自定义函数,且传递不同的参数max_computer = 0;max_player = 0;k = 0;/定义三个变量for (j=0; j15; j+) for (i=0; i15; i+) for (k=0; k 50) max_computer = _puterj*15+ik ;xc = i;yc = j;if (_puterj*15+ik max_computer) max_computer = _puterj*15+ik ;xc = i;yc = j;if (_root.playerj*15+ik max_player) max_player = _root.playerj*15+ik ;xp = i;yp = j;if (max_computer max_player) x = xc;y = yc; else x = xp;y = yp;/ 绘制棋子num = y * 15 + x;removeMovieClip(_root.b add num);duplicateMovieClip(_root.white, white add num, num + 300);setProperty(_root.white add num, _x, 34.7 + x * 20);setProperty(_root.white add num, _y, 34.7 + y * 20);_root.tableyx = 2;/ 显示棋子_root.display = Xpos : + (x + 1);temp = chr ( y + 65);_root.display1 = Ypos : + temp;_root.playnow = player;/判断是否获胜xx = x;yy = y;for (k=0; k4; k+) if (_root.a_result 6) _root.a_result = 0;x = xx;y = yy;while (_root.tableyx = 2) and (y+_root.dirk1 = -1) and (x+_root.dirk0 = -1) x = x + _root.dirk0;y = y + _root.dirk1;/ _root.table+y+x+=+_root.tableyx_root.a_result = _root.a_result+1;x = xx;y = yy;while (_root.tableyx = 2) and (y+_root.dirk+41 = -1) and (x+_root.dirk+40 = -1) x = x + _root.dirk+40;y = y + _root.dirk+41;_root.a_result = _root.a_result+1;if (_root.a_result = 6) _root.playnow = nobody;if (_root.playnow =nobody) C:新建一个Movie clip组件,并命名为bb,此组件用来计算电脑如何走棋,进入组件编辑状态后,在图层layer1绘制一个有填充色的矩形,然后在第5桢插入一个关键桢,在同样位置绘制一个大小相同填充色不同的矩形。新建一个图层,在矩形里输入提示文字:电脑走棋,然后再新建一个图层Action,在第一桢添加AS: stop();,在第8桢插入一个关键桢,在此桢添加如下AS:if (_root.playnow = computer) /初始化棋盘_root.func.makelist(white);_root.func.makelist(black);/调用自定义函数max_computer = 0;max_player = 0;k = 0;/定义三变量for (j=0; j15; j+) for (i=0; i15; i+) for (k=0; k 50) max_computer = _puterj*15+ik ;xc = i;yc = j;if (_puterj*15+ik max_computer) max_computer = _puterj*15+ik ;xc = i;yc = j;if (_root.playerj*15+ik max_player) max_player = _root.playerj*15+ik ;xp = i;yp = j;if (max_computer max_player) x = xc;y = yc; else x = xp;y = yp;/ 绘制棋子num = y * 15 + x;removeMovieClip(_root.b add num);duplicateMovieClip(_root.white, white add num, num + 300);setProperty(_root.white add num, _x, 34.7 + x * 20);setProperty(_root.white add num, _y, 34.7 + y * 20);_root.tableyx = 2;/ 显示棋子_root.display = Xpos : + (x + 1);temp = chr ( y + 65);_root.display1 = Ypos : + temp;_root.playnow = player;/ 判断是否获胜xx = x;yy = y;for (k=0; k4; k+) if (_root.a_result 6) _root.a_result = 0;x = xx;y = yy;while (_root.tableyx = 2) and (y+_root.dirk1 = -1) and (x+_root.dirk0 = -1) x = x + _root.dirk0;y = y + _root.dirk1;/ _root.table+y+x+=+_root.tableyx_root.a_result = _root.a_result+1;x = xx;y = yy;while (_root.tableyx = 2) and (y+_root.dirk+41 = -1) and (x+_root.dirk+40 = -1) x = x + _root.dirk+40;y = y + _root.dirk+41;_root.a_result = _root.a_result+1;if (_root.a_result = 6) _root.playnow = nobody;/ 游戏结束if (_root.playnow =nobody) 最后的时间线如图6所示:图6D:再新建一个movie clip组件,命名为buttonclip,此组件用来控制双方的落子,进入组件编辑状态后,将前面做好的隐形按钮拖放到编辑区中,然后给第一桢添加AS:stop();.E:最后再制作一个movie clip,命名为gameover,此组件用来判断游戏是否结束,也就是判断是缶有一方已经连好了五颗棋子。进入组件编辑状态后,连续建立四个图层,分别为layer1,layer2,layer3和action,在layer1,layer2,layer3的第一桢插入空白,然后在第2桢绘制电脑获胜的提示信息,并将Replay按钮拖到编辑区中,给按钮添加As:on (release) 如图7所示:图7在layer1,layer2,layer3的第三桢按照同样的方法设置您胜利的提示信息,如图8所示:图8然后回到图层action,接下来就要添加具体的控制Action了,在此图层的前三个关键桢分别添加as: stop();,在第四关键桢添加如下AS:for (i=0; i=225; i+) removeMovieClip(_root.black add i);removeMovieClip(_root.white add i);removeMovieClip(_root.b add i);/清除棋盘上的棋子_root.gotoAndPlay(run);/跳转到游戏的开始最后的时间线如图9所示:图9布置主场景:游戏的主要工作完成后,接下来需要布置主场景了。首先使用绘图工具绘制出游戏中的棋盘,棋盘大小为15*15的矩阵,然后给棋盘标上横向和纵向的标识,如图10所示:图10分别将组件white,black,buttonclip,blk,bb和gameover拖到舞台的合适位置,如图11所示:图11组件white的实例名为:black组件black的实例名为:white组件buttonclip的实例名为:b组件blk的实例名为:func组件bb的实例名为:computerrun组件gameover的实例名为:gameoverman然后在棋盘上绘制两个Dynamic text动态文本框,用来显示上一步落子的位置,分别设置变量名为display和display1。最后,给第一关键祯添加as:stop();urls = 边城浪子-闪客帝国;num = 0;table = new Array();computer = new Array();player = new Array();a_result = 0;/ Table arrayfor (i=0; i15; i+) tablei = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);/ Computer and player table listfor (j=0; j15; j+) for (i=0; i15; i+) computerj*15+i = new Array(0,0,0,0);playerj*15+i = new Array(0,0,0,0);/ Make buttonscount = 0;for (j=0; j15; j+) for (i=0; i15; i+) duplicateMovieClip(_root.b, badd count, count + 30);setProperty(badd count, _x, 34.7 + i * 20);setProperty(b add count, _y, 34.7 + j * 20 );count+;/ Eight directionsvar dir = new Array();dir0 = new Array(1,0);dir1 = new Array(1,1);dir2 = new Array(0,1);dir3 = new Array(-1,1);dir4 = new Array(-1,0);dir5 = new Array(-1,-1);dir6 = new Array(0,-1);dir7 = new Array(1,-1);playnow = player;removeMovieClip(_root.b112);duplicateMovieClip(_root.white, white112, 142);setProperty(white112, _x, 174.7);setProperty(white112, _y, 174.7);/ The first black pointtable77 = 2;到此为止,五子连珠这个游戏就制作完成了,本游戏属于较高级的游戏制作,需要有一定的Action编程基础,不过如果您对Action不太了解,相信学完本实例后,可以在一定程度上提高您的Action水平。【Flash游戏制作:打砖块概要:示,玩家每打掉一块方砖,会得到一定的分数。 在本实例中每局中玩家的生命值为5,如果将当前界面中的方砖全部打完,则进入下一关。游戏开始允许玩家选择游戏难度:初级、中级和高级,不同的难度中方砖的数量和小球运动的速度不同,玩家可以根据自己的水平来选择合适的游.】游戏者用一个挡板对小球进行反弹,上方排列了一些方块砖,游戏的目的就是利用鼠标对挡板进行左右移动控制,以便将小球挡回去,避免小球落到挡板的下方,挡回去的小球将与上面的方砖发生碰撞,被碰撞的方砖会自动显示,玩家每打掉一块方砖,会得到一定的分数。在本实例中每局中玩家的生命值为5,如果将当前界面中的方砖全部打完,则进入下一关。游戏开始允许玩家选择游戏难度:初级、中级和高级,不同的难度中方砖的数量和小球运动的速度不同,玩家可以根据自己的水平来选择合适的游戏难度。 游戏制作思路:本游戏主要涉及到以下几种主要控制:1鼠标拖动:游戏中需要使用鼠标拖动档板左右移动来挡小球,此功能也是很多游戏中常用的,用startdrag函数很容易就解决了。2小球的反弹控制:游戏中小球会不断和墙壁、挡板或者方砖发生碰撞,所以需要使用Action来控制小球的反弹。3方砖和小球的碰撞测试:游戏中需要检测小球是否碰到了方砖,此功能可以使用hitTest碰撞测试函数来检测。4游戏的记分和生命值:在游戏中需要动态的显示当前玩家的游戏得分和玩家剩余的生命值,这里使用动态文本框(Dynamic text)实现显示分数的功能。通过以上几点的分析,可以大概理顺游戏的制作思路,下面我们就来进行本游戏的具体制作。游戏的制作步骤:1小球的制作:此类游戏中小球是必不可少的对象,所以我们可以随意绘制一个小球,再填充上合适的颜色,不过因为我们需要在后面使用Action对小球进行控制,所以这里我们将小球做成movie clip,命名为ball,如图1所示:图12小球反弹效果制作:因为游戏中小球要在多个场合进行反弹,所以需要制作一个小球进行反弹的效果,这里我们新建一个movie clip,命名为ball_jmp,进入组件的编辑状态后,在原有图层layer1的上方新建一个图层layer2,我们要的效果是小球由下自上弹起来,所以图层layer1制作小球阴影由小到大的的shpae形状变化效果,图层layer2制作小球由下自上的motion运动效果,如图2所示:图23背景变幻效果:如果在游戏的过程中能不断的变换游戏背景,可以使游戏气氛显的很紧张,玩起来也很刺激,所以就制作一个背景颜色快速变化的Mc,新建一个movie clip,命名为background,在第一帧使用矩形工具绘制一个填充色为蓝色的矩形,如图3所示:图3然后在图层layer1的第2帧插入一个关键帧,在第8帧也插入一个关键帧,并将第8浈中的矩形填充色改变为浅蓝色,然后建立第2帧到第8帧的shape形状过度效果,最后将时间线延长到第10帧,如图4所示,图4在图层layer1的第1帧添加AS:play = 0;stop();/定义变量play,然后暂停播放在图层layer1的第2帧添加AS:play = Number(play)+1;setProperty(/ball, _visible, false);tellTarget (/) /变量play的值为当前值增一,然后设置小球为不可见,主场景停止播放在图层layer1的第8帧添加AS:if (Number(play)3) else if (Number(endgame) = Number(false) tellTarget (/) if (Number(/:endgame) = Number(false) setProperty(/ball, _visible, true);gotoAndStop(1);/根据变量play和endgame的不同值,跳转到不同的帧,并设置小球为可见4. 游戏难度选择按钮的制作:本游戏可以在游戏开始前选择游戏难度,游戏中一共分为三种难度,分别是初级,中级和高级,不同的难度方砖的数量和小球运动的速度将不同,玩家可以根据自己的水平来选择合适的游戏难度。这里以其中一个按钮为例进行说明,其它两个按钮制作方法类似。新建一个button按钮组件,命名为advanced,进入组件编辑状态后,在按钮的UP帧处输入advanced几个字,代表高级难度,然后在OVER帧插入一个关键帧,将前面做好的组件ball_jmp拖到文字的左方,然后分别在DOWN帧和Hit帧插入关键帧,如图5所示:图6按照同样的方法制作其它两个按钮,分别为beginner和intermediate,代表了初级和中级。5档板的制作:接下来制作游戏中另一个很重要的角色档板,档板在游戏中被鼠标控制,用来挡回小球,因为游戏中需要使用Action对挡板进行控制,所以档板也需要制作成movie clip.新建一个Movie clip,命名为paddle,进入组件的编辑状态后,使用矩形工具绘制一个填充色为红色渐变的矩形,如图6所示;图66砖块的制作:游戏的目的就是利用小球击中更多的方砖,所以方砖是必不可少的,为了使游戏的视觉效果更加突出,本游戏一共制作了四种不同颜色的方砖,分别为黄色,红色,蓝色和绿色的砖块,这里我们只对其中的一种蓝色转块的制作进行讲解,其它三中的制作方法类似。新建一个movie clip,命名为brickblue,进入组件的辨别状态后,先用矩形工具绘制一个填充色为蓝色渐变的矩形,如图7所示:图7然后在图层layer1的第2帧插入关键帧,将矩形的填充色改变为红色,并且将矩形分解为不同的几部分,以便制作砖块爆炸开的效果,如图8所示:图8在图层layer1的第9帧插入关键帧,在此帧将矩形的几部分拖拉成扩散状,并将每一碎片进行适当的缩小,然后在第2帧到第9帧之间建立shape形状过渡动画,图9为打开洋葱皮功能的效果:图9为了使爆炸效果更加逼真,我们在进行一下修饰,新建一个图层layer2,再第2帧插入一个关键帧,然后使用椭圆工具绘制一个具有红色渐变填充色的圆形,如图10所示;图10然后在第2帧到第10帧之间做一个圆形放大且透明度增加的shape形状过渡,如图11所示:图11这样,砖块的爆炸效果就很好的体现出来了。 【Flash游戏制作:打砖块(2)概要: stop(); 到此为止,游戏中需要用到的所有组件就准备好了,下面我们来进行主场景的布置。 二、布置主场景 1回到主场景中,将原来的图层layer1更名为background,此层放置游戏的背景。使用矩形工具在舞台上绘制一个和舞台同样大小的填充色为深蓝色的矩形,作为游戏的整.】最后还需要添加一些控制用的Action,在图层layer1的第1帧添加如下AS:vis = 1;stop();在图层layer1的第2帧添加如下AS:todest = /:destroy;在图层layer1的第10帧添加如下AS:removeMovieClip(/brick add todest);stop();到此为止,游戏中需要用到的所有组件就准备好了,下面我们来进行主场景的布置。二、布置主场景1回到主场景中,将原来的图层layer1更名为background,此层放置游戏的背景。使用矩形工具在舞台上绘制一个和舞台同样大小的填充色为深蓝色的矩形,作为游戏的整体背景,然后将组件background拖到舞台的靠右的位置,作为游戏的主体背景,如图12所示: 图122新建一个图层命名为bricks,此层用来放置四种颜色的砖块,将四种不同颜色的砖块分别自上而下拖放到舞台的左边,并给四中颜色的砖块分别设置实例名为brick, brickred, brickblue和brickgreen,如图13所示:图133再分别新建两个图层,分别命名为ball和paddle,将小球和档板分别拖放到主背景的靠下的位置,并分别设置实例名为ball和paddle,如图14所示:图144新建一个图层命名为info,此层用来放置记分和生命值用的文本框,分别用文本工具绘制三个文本框,设置其属性为Dynamic text动态文本框,然后给文本框添加说明性文字,从上到下分别为分数,生命值和等级,最后分别给此三个文本框设置变量名为score,balls和level_I,如图15所示:图155. 新建一个图层命名为button,此图层放置游戏开始前的难度选择按钮,将前面制作的三个难度按钮分别拖到主背景的中间位置,由上自下分别为beginner, intermediate和Addvanced。给beginner按钮添加AS:on (release) speed = 8;balls = 5;play();给intermediate按钮添加AS:on (release) balls = 4;speed = 10;pla

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论