flash游戏制作
【摘要】:Flash 是由 macromedia 公司推出的交互式矢量图和 wed 动画的
是一种创作工具,设计人员和开发人员可使标准,由Adobe 公司收购。Flash
用它来创建演示文稿、应用程序和其他允许用户交互的内容。Flash 可以包含简单的动画、视频内容、复杂演示文稿和应用程序以及介于它们之间的任何内容。它不久能够制造出许多炫目多彩的效果,只要你肯赋予它一定的情景,它也会模拟出现实生活中的场景。通过Flash 生成的动画,游戏比较小,可以很好的用在网页设计及更多的领域。
【关键词】 Flash 游戏 Actionscript 语言
目 录
引言 ??????????????????????????????????????????????????????????????1 一、Flash 游戏技术?????????????????????????????????????????????????1
1、概述?????????????????????????????????????????????????????????1
2、特点?????????????????????????????????????????????????????????1
3、优势?????????????????????????????????????????????????????????2 二、找茬游戏的设计理念?????????????????????????????????????????????2
1、趣味性???????????????????????????????????????????????????????2
2、游戏性???????????????????????????????????????????????????????2
3、艺术性???????????????????????????????????????????????????????3 三、游戏的构思与实现???????????????????????????????????????????????3
1、游戏的构思????????????????????????????????????????????????????3
2、编写游戏剧本??????????????????????????????????????????????????3
3、准备游戏素材,进行处理和导入??????????????????????????????????3
4、元件素材的制作和游戏的实现????????????????????????????????????5
(1)、创建正确和错误元件??????????????????????????????????????????5
(2)、创建成功和失败元件??????????????????????????????????????????6
(3)、创建画圆标示元件????????????????????????????????????????????7
(4)、创建按钮和隐形按钮元件??????????????????????????????????????8
(5)、实现倒计时??????????????????????????????????????????????????9
(6)、游戏的布置和实现???????????????????????????????????????????10 四、设计过程中遇到的问
和解决的办法???????????????????????????????15
1、图层的应用要灵活?????????????????????????????????????????????15
2、元件的使用技巧???????????????????????????????????????????????16
3、声音的使用技巧???????????????????????????????????????????????16 参考文献??????????????????????????????????????????????????????????17 致谢??????????????????????????????????????????????????????????????18
引 言
Flash 游戏是一种新兴起的游戏形式,以游戏简单,操作方便,绿色,无需安装,文件体积小等优点。现在渐渐被广大网友喜爱。Flash 游戏又叫Flash 小游戏,因为Flash 游戏主要应用于一些趣味化的、小型的游戏之上,以完全发挥它基于矢量图的优势。Flash 游戏因为Flash CS3 原因,在近年发展迅速,许多年青人投身其中,并在整个Flash 行业中发挥重要作用。目前已经支持数款WebGame、SocailGame、Flash小游戏在不同移动终端运行,且具有硬件功耗低、流量资源小、完全跨平台等特点。其Flash Plash player 占据 90%互联网用户的浏览器,所以它的发展空间十分巨大,前途不可估量。
一、 FLASH 游戏技术
1、概述
FLASH 游戏在游戏形式上的表现与传统游戏基本无异,但主要生存于网络之上,因为它的体积小、传播快、画面美观,所以大有取代传统 Web 网游的趋势,现在国内外用 FLASH 制作无端网游已经成为一种趋势,只要浏览器安装了 ADOBE 的FLASH Player,就可以玩所有的FLASH 游戏了,这比传统的 Web 网游进步许多。但是FLASH 游戏也有自身的缺点,比如安全性差,不能承担大型任务等。但是使用者应该尽量发挥它的长处,回避它的短处。 2、特点
与之前的网页游戏相比,FLASH 网页游戏基于FLASH 的图像处理技术,让游戏画面等的表现力都大大提高。2008年以来,FLASH 网页游戏技术在游戏开发领域得到了迅速的扩展和研究,是今后网页游戏的主宰者。尤其是休闲网页游戏的一个重要发展方向。FLASH 网页游戏和传统网络游戏最大的区别就是它的游戏资源的组织和加载方式。它通过二进制流的形式加载游戏中所需要的图像数据。例如游戏中图片的呈现,它采用渐进式加载,在进入图片加载的同时,首先呈现的是一幅交错的不清晰的图片,随着图片数据的逐渐加载,游戏中呈现的图片像素也逐渐增多,图片慢慢从开始的不清晰变得清晰。
3、优势
随着FLASH 技术的不断进步,FLASH 游戏的丰富性、趣味性与大型网络游戏有了分庭抗礼、一争高低的竞争资本。而FLASH 游戏最大的优势在于方便性,不需要下载数据包、不需要安装客户端、不需要安装光盘,玩家只需要打开网页就可以玩。这种方便快速的特性是网络游戏所不具备的。
据有关部门统计,目前中国1.72亿的网民之中,网游玩家占 30%,剩余的 70%的人群中,白领人群占到其中的 40%以上,即 5100 多万。白领人群的特点是工作压力大,时间和精力有限,而FLASH 游戏不用下载庞大的客户端,只要打开 IE 浏览器,几秒钟即可进入游戏,关闭或者切换游戏页面极其方便。在办公室工作累了,随时可以打开游戏休闲放松几分钟。凭借这种特点,FLASH 游戏很快吸引了上班一族,成为写字楼里不少白领们休闲娱乐、放松神经的首选。
二、 找茬游戏的设计理念
找茬游戏的创作,既要遵循一般动画的创作原则,又要体现FLASH 游戏根本原则。找茬游戏创作的根本原则包括以下几个方面。
1、趣味性
FLASH 游戏的趣味性直接关系到玩家能否从游戏中得到愉悦的体验。这种趣味性一方面体现在游戏作品幽默性的表达上,即用幽默的手法表现设计创意。另一方面,体现在设计作品独特的视觉感上,利用 PHOTOSHOP 进行图形图像处理,采用新颖的形式来设计字体、编排文字或图形,增强作品形式的趣味感。幽默性的表达常运用于图形创意中,它是智慧和理性的产物。图形处理中通过幽默的传达,使玩家在愉悦中自然地接受图形传达的信息。独特的视觉感也是设计作品趣味性的重要特征,在找茬游戏中,这种“独特” 不仅体现在作品深刻的图形内涵上,而且体现在作品强烈的视觉冲击力上,它能够给受众者带来“眼镜一亮”的展撼力和为之“激动”、“兴奋”的体验。独特的视觉感主要通过游戏中的图形、色彩和文字编排表现出来。
2、游戏性
对游戏性的设计其实就是一场形与色的游戏。调动色彩、文字、图形等一切设计元素。如果说图形设计是在内容上体现游戏性,那么编排设计包括文字和
图形则在形式感上体现游戏性。找茬游戏的设计就是从单一的图案、标志、图形的表达形式,扩展到系列化的整体形象设计。
3、艺术性
(1)、交互式艺术特征。交互性是互联网出现后的一个亮点,网络媒体的出现解决了传统平面媒体交互性不强的特点,而 FLASH 游戏的交互性便使得玩家参与到了传播作品的传送过程中,甚至是传播内容的本身当中。使得 FLASH 游戏拥有更为普遍的大众互动意义。找茬游戏可以通过 Action Script 与用户进行交互作用。用户利用Action Script 可以给动画添加单选按钮、下拉菜单和流动条等各种交互组件,通过键盘操作或动画的按钮操作来实现。
(2)、时尚性艺术特征。 FLASH 游戏集合时尚元素于一体,作为一种新兴的视觉艺术形式。FLASH 游戏已经成为网络时代一道亮丽的风景~它集合网络、互动、即时、音乐、动画等各种时尚元素于一体~在形式上有别于以往任何艺术品种,具有鲜明的网络时代特征。找茬游戏就是利用时尚性艺术特征,表现出了更丰富的内容。
三、 动画的构思与实现
1、动画的构思
游戏制作的思路大体是这样的:准备两张大同小异的图片,甚至可以准备更多张。做好找到错误后的图画,在每个错误的地方放上画图和添加隐形按钮,再对按钮添加一些简单的判断代码就可以了。
2、编写游戏剧本
要有一个好的剧本。在找茬游戏中,不仅要考虑到背 想使游戏更好玩,就
景、内容、难易程度,也要考虑到场景的布局美观,这样才能完成一个好的作品。 3、准备游戏素材,进行素材的处理与导入
在准备好剧本之后,就开始准备游戏素材了。素材分两大部分。
(1)、声音素材:基本可以分为《成功》、《失败》、《对》、《错》、《倒计时》
5个部分,通过网络或一般音效剪辑软件都可以得到。如图1 这里是
我制作好的声音素材。
图1 声音素材
(2)、图片素材:准备的图片素材可以根据自己的思路而确定。比如图片种
类、图片大小、图片数量、找茬图片中错误的数量。在制作过程中,
可以利用Photoshop 等工具进行编辑。如图2 图3
图2 图片素材
图3 找茬图片对比
素材准备就绪后,在需要的情况下随时导入到 FLASH 中就可以了。其次就是完成一些元件的制作。在找茬游戏中,为了更好的实现游戏的交互,制作游戏的过程中会使用到一些元件,通过这些元件完成对事件的触发。最后,音乐和音效是一个好游戏重要的组成部分。在游戏设计过程中,对于不同的阶段,加入了相适应的音乐,以提高游戏的可玩性。例如在找茬成功时,音乐可以激昂点、轻松点。在找茬失败时,音乐可以低沉点。同时选择比较优美的轻音乐作为背景音乐,可以达到更好的游戏效果。
4、元件素材的制作和游戏的实现
元件的制作是至关重要的,具体制作如下。
(1)、创建正确和错误元件 图4 和 图5
这是两个游戏正确和错误的提示,当游戏者每找对和找错一处地方时
所表现的动画。从而做到正确的提示。制作的
都是相似的。
打开FLASH CS4 ,菜单 - 插入- 新建元件,并命名为“正确” 。
在图层1的时间轴上第1帧利用绘制工具,绘制5个灰点的正确进度
条。绘制好后在图层1的第6帧插入帧。
接着新建图层2 ,并在图层2的第2帧处绘制一个蓝点,在原先灰点
进度条的基础上。并覆盖第一个灰点。再在图层2的第3、4、5、6
帧依次插入关键帧绘制蓝点,并覆盖对应的灰点。
最后再新建图层3 ,并在图层3的第1帧的动作面板添加停止的
Action代码:stop();
这样一个正确元件就制作好了。同样,错误元件也可以类似制作。但
是从图3和图4中可以看出,错误元件比正确元件多一个代码帧。其
代码为:_root.over.play(); 这里元件代码的意思是:当游戏者错
误达到4个时,游戏结束。
图4正确元件 图5 错误元件
(2)、创建成功和失败重玩元件 图6和图7
这两个元件是在成功游戏和失败游戏时所提示的动画或文字。可以
涉及到声音素材,制作的方法都是一样的。只不过一个让人看了兴
奋,一个让人看了沮丧。
打开FLASH CS4 ,新建元件,可以命名为“成功” 。在图层1的第
2帧插入空白关键帧,并绘制自己喜欢的“成功”动画和文字。如何
想让动画和文字具有变换性,可以使用创建补间动画、补间形状和
传统补间。
接着新建图层2 ,并在图层2的第1帧插入空白关键帧,再将事先
准备好的“成功”声音素材导入到舞台。
最后再新建图层3 ,在图层3的第一帧添加停止的Action代码:
stop();
这样元件就制作好了。同理,失败元件也是如此制作。
图6 成功元件
图 7 失败重玩元件
(3)、创建画圆标示元件 图8
画圆标示元件的定义为:在游戏中,找到一个正确的错误点时用一个圆做标示。
CS4 ,新建元件,可以命名为“画圆标示” 打开FLASH 。因为是画
效果必须逐步进行。 圆,所以
在图层1先绘制一个圆。注意画圆时关闭填充颜色。绘制好以后,在第4帧插入关键帧,意思是一共分4步形成一个圆。接着每倒退1帧插入1个关键帧,并利用绘制工具的“橡皮擦”工具擦除圆上的一部分。倒退的帧数越多,圆上擦去的部分也就越多。直到最后一帧,留下圆上的一小部分就可以了。制作好以后,再从顺着逐帧看一下就是一个画圆的过程。
最后再新建图层2 ,在第4帧插入空白关键帧,并添加停止的Action代码:stop(); 就可以了。
图8 画圆标示元件
(4)、创建按钮和隐形按钮元件 图9 图10
按钮在游戏当中起到一个反馈的作用。根据自己的需要可以制作不同
的反馈按钮。
普通按钮元件制作十分简单,只有四个步骤。首先新建元件,可以命
名为“按钮” ,类型选择“按钮” 。这时会发现图层1 的时间轴
上只有4帧,分别为:弹起、指针、按下、点击。这里的意思分别是:
鼠标触发按钮时的效果、鼠标指针划过按钮时的效果、鼠标按下按钮
时的效果、鼠标点击按钮的效果。也就是说,只要在每帧中插入关键
帧,并绘制不同的按钮效果就可以了。
隐形按钮元件的制作需配合画圆标示元件,因为在找茬图片中,错误
的地方需要感应按钮,而这些按钮必须是肉眼看不到。同时反馈画圆
标示元件提示正确的地方。制作中隐形按钮只要在第4帧插入一个空
白关键帧并绘制一个矩形就可以了。接着保存隐形按钮元件,新建一
个类型为影片剪辑的元件,在图层1的第1帧导入隐形按钮元件,第
2插入一个空白关键帧并导入画圆标示元件。最后在第1帧处添加动
作代码:stop(); 这样一个完整的隐形按钮元件就制作好了
图 9 返回按钮
图 10 隐形按钮效果图
(5)、实现倒计时 如图 11
图 11实现倒计时
图层1是个静态文本。图层2是个动态文本,利用代码层实现数值的变化和声音素材的附加。代码层为:
time = 20; (赋值的定义,可大可小。)
shijiansound = new Sound(); shijiansound.attachSound("jishi"); (根据声音素材名称附加的声音) function daojishi() {
if (time>0) {
time--;
if (time<=10) {
shijiansound.start(0, 1);
}
}
}
jishi = setInterval(daojishi, 1000);
(6)、游戏的布置和实现
游戏的布置分两部分,开始场景的布置和游戏场景的布置
开始场景的布置 如图 12
图12 开始场景布置
布置开始场景时,因为涉及到两个图片的开始按钮,所以在打开打开
FLASH CS4时,需注意创建“FLASH 文件(ActionScript 2.0)”文本。
原因是只有在“FLASH 文件(ActionScript 2.0)”文本中才能对图片
写入动作代码。创建文本后,建立一个场景,并将原先制作好的元件
根据图层布置好,接着绘制个边框图层。最后建立代码层。
图片按钮代码:
onClipEvent (enterFrame) {
this.onRollOver = function() {
this.onEnterFrame = function() {
if (this._xscale<=110) {
this._xscale = this._yscale += 2;
}
};
};
this.onRollOut = function() {
this.onEnterFrame = function() {
if (this._xscale>=100) {
this._xscale = this._yscale -= 2;
}
};
};
this.onRelease = function() {
_root.choose = 1;
};
}
图片的按钮效果是鼠标划过图片时的放大与缩小。 _root.choose
= 1; 这里指图片的变量赋值,。赋值1即为图片1 。
场景代码:
stop();
choose = 0;
onEnterFrame = function () {
if (choose == 1) {
gotoAndStop("game", "yi");
}
if (choose == 2) {
gotoAndStop("game", "er");
}
};
这里是一个if的判断语句。Game为下一步游戏场景的文本名称。
游戏场景的布置 如图 13
图13 游戏场景布置
在游戏场景的布置过程中,导入元件时相关命名“实例名称” ,以便区分代码的写入。例如,图片错误的5处隐形按钮元件,依次可命名为a1至a5 。
场景布置好后,最后是代码的写入并实现游戏。
游戏的代码实现分两部分。首先是一些元件的代码实现,例如返回按钮元件 图 14
图14
这里的Start 是开始场景的文本名称。
第二部分是游戏的实现代码。
stop();
rightsound = new Sound(); rightsound.attachSound("dui"); wrongsound = new Sound(); wrongsound.attachSound("cuo"); shijiansound = new Sound(); shijiansound.attachSound("tishi"); function daojishi() {
time--;
if (time<=10) {
shijiansound.start();
}
}
//游戏结束
function jieshu() {
for (i=6; i<=10; i++) {
_root["a1"+i].bt.enabled = 0; }
}
function chushihua() {
time = 40;
winlin = 0;
loselin = 0;
jishi = setInterval(daojishi, 1000);
for (i=6; i<=10; i++) {
_root["a1"+i].gotoAndStop(1);
_root["a1"+i].bt.enabled = 1;
}
_root.youtu2.enabled = 1;
_root.wrong.gotoAndStop(1);
_root.diffpoint.gotoAndStop(1); }
//重新开始
chushihua();
onEnterFrame = function () {
if ((time == 0 || _root.wrong._currentframe == 5) && loselin
== 0) {
loselin = 1;
_root.over.play();
clearInterval(jishi);
_root.youtu2.enabled = 0;
jieshu();
}
if (_root.diffpoint._currentframe == 6 && winlin == 0) {
winlin = 1;
_root.good.play();
clearInterval(jishi);
_root.youtu2.enabled = 0;
jieshu();
}
};
游戏的实现代码,主要是在一些元件的基础上添加附加了一些声音的导入和反馈条件。制作完成后,导出影片并测试即可。如图15
图15 游戏的实现
四、 设计过程中遇到的问题和解决的办法
1、图层的应用要灵活
图层在使用过程中,主要作用是辅助绘图,另外在动画制作中还有分隔的作用。这里主要说一下,图层的特色效果遮罩层,遮罩层是图层特有的效果,一般由两个图层构成,上层的作为遮罩图层,下层的作为被遮罩图层(已遮罩图层)。不论是遮罩还是被遮罩图层,均可以使用前面所述的动画,组合使用可以制作出令人耳目一新的特殊效果。在自己不断摸索的过程中,本人感觉遮罩层使用应该注意:
(1)、遮罩层必须包含填充,不能只有线条。
(2)、遮罩层特效只有在遮罩层和被遮罩层均锁定的时候,才能看到。除了
遮罩特效,图层还准备了特殊工具图层文件夹。如果影片中图层特别
多,可以方便的建立图层文件夹,吧图层分类存放,使图层窗口简洁
明了。
2、元件的使用技巧
FLASH 制作过程中大部分时间是与元件(Symbol)打交道的,同样的元件包括影片剪辑(Movie clip)和按钮(button)都可以在多个地方无数次的被使用,而不必重新制作,那么多个相同内容的动画对象只保存一次就足够了。
3、声音的使用技巧
游戏声音从一开始到游戏结束都可以使用到不同的音乐的。声音(sound)是FLASH 作品中的一个重要组成部分,特别是一些短剧类的动画作品,声音效果的好坏直接影响到整个作品的效果,因此对动画的音频素材要设置合理的压缩和参数:
(1)、MP3 格式相对于 WAW 格式来说文件大小以及音质都要好的多,使用插入的声音文件尽量用MP3 格式。
(2)、最好是将场景中的声音文件安排在一个专属的图层中,而不要和其他元件放在同一个图层内,这样可以使FLASH 在播放作品时比较轻松,对于较复杂的,包含有许多声音文件的影片,也可以避免出错。 (3)、FLASH 影片里的音效区分为两种:“事件音效”和“背景音效” 、“事件音效”在平常时并不发出声音,只等待浏览者触发特定事件,如用鼠标单击按钮时,才播放声音文件,而一旦播放声音,并不因为帧停止而停止。“背景音效”的播放则完全是根据影帧,有帧的地方音效就会持续播放,影帧停止,音效也就会立即停止,声音在使用“背景音效”时,将其制作成单独的影片剪辑元件插入到作品中不失为一个好办法。
参考文献:
FLASH 的前身是 Future Wave 公司的 Futre Splash ,是世界上第一个商用二维矢量动画软件,用于设计和编辑FLASH 文档。1996年11月,美国Macromedia公司收购了Future Wave ,并将其改名为 FLASH 。在出到FLASH 8以后,Macromedia又被Adobe公司收购。最新版本为Adobe FLASH CS5。FLASH 通常也指Macromedia Flash Player (现 Adobe Flash Player),用于播放FLASH 文件
.FLASH 学习过程中的几个问题[J].2005 [1] 姜晓刚
[2] 周仪兰.基于FLASH 的遮罩层动画[J].漳州工业学校.2009 [3] 陈东.FLASH Action Script 2.0 互动编程从基础到应用[M].北京:人民邮电出版社,2006.
[4] 吕辉.Flash/Flex Action Script 3.0[M].北京:电子工业出版社,2008. [5] 齐朝晖.FLASH 动画原理与实践[M].北京:电子工业出版社,2008. [6] 杨青,杨磊.3D 游戏编程[M].北京希望电子出版社,2004. [7] 陈世琼,黎华.浅析面向对象程序设计.科技信息(学术研究),2009,(27).
谢 辞
首先,我谨向我的指导老师致以衷心的谢意。在他的悉心指导和言传身教下,我才能得以顺利完成专科生毕业论文工作。本文的选题和研究工作倾注了老师的大量心血和谆谆教诲。在学术上,老师具有高瞻远瞩的目光,又具有坚实广博的知识。在工作上,老师既具旺盛持久的工作热情,又具严谨认真的治学态度。在我的学习期间,无论学习科研,工作态度,以及为人处事,都受益匪浅并将影响我终身。
感谢与我同期毕业的同学。在我的论文准备和写作期间,他们自始至终给予我巨大的帮助和指导。
感谢我的同窗好友,他们兼具认真的科研态度和执着的研究精神,与他们的讨论帮助我获得了许多的启迪。感谢班级的所有老师和同学,他们为我创造了良好的学术环境、学术气氛和实验条件。
我要衷心地感谢我的父母和家人,没有他们的关心和爱护,我不可能度过这漫长而艰难的求学生涯,并最终完成学业。
最后,我要感谢评审本论文的老师、教授和专家:,感谢他们抽出宝贵的时间来阅读本文,并提出宝贵的意见和建议。