《基于flash的策略类游戏研究与设计.doc》由会员分享,可在线阅读,更多相关《基于flash的策略类游戏研究与设计.doc(17页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、毕业设计(论文)题 目基于flash的策略类游戏研究与设计 系 (院)计算机科学技术系专 业软件技术班 级学生姓名学 号指导教师职 称二一二年五月二十日滨州学院本科毕业设计(论文)基于flash的策略类游戏研究与设计摘 要Flash是美国的一家公司(MACROMEDIA公司)于1996年6月推出的优秀网页动画设计软件, 在中国经历了9年的发展时间。曾经在中国风云一时,出现了FALSH热。由于动漫也成为一种时尚的艺术,而且最直接简单的动画创作是就FLASH。我认为它可以自成体系,有它自己独特的表现方法.手段和流通方式及“闪客”生活。甚至我认为它是现代文明的一种符号,新新艺术创作方式,是一种流行于
2、网络的网络文化。电脑替代了传统的笔墨,移动的图象和声音同样表达了动画艺术家的情感,所以我把FLASH作为独立的动画来谈。 我这种论述不论对与错,但是他始终代表了我对FLASH认识的观点和理解。今天让我们共同来探讨FLASH,我的观点是FLASH不可否认已经成为了一种新的艺术表现形式,作为新的事物它的应用非常广泛,主要用于网络,FLASH网站片头,FLASH演示动画,FLASH网站,FLASH商业广本设计通过。技术,设计并实现了一个具有。功能,。特点。优势的策略类游戏,能够。具有。;论文通过。阐述了游戏设计的。通过测试证明,本设计能够较好地。具有较好的实用价值,达到了预期目标。关键词:FLASH
3、;游戏;策略类;I目 录第一章 绪论21.1 Flash软件简介21.2 Flash的特点31.3 Flash游戏31.4 Flash游戏的发展方向4第二章 游戏设计思路52.1游戏的框架52.2游戏的组成52.3场景间的转换5第三章 FLASH游戏的功能实现73.1 打鸟73.1 打鸭子9第四章 总结13参考文献13谢辞14i滨州学院本科毕业设计(论文)第一章 绪论1.1 Flash软件简介Flash是由macromedia公司推出的交互式矢量图和 Web 动画的标准。网页设计者使用 Flash 创作出既漂亮又可改变尺寸的导航界面以及其他奇特的效果。Flash也是存储芯片的一种,通过特定的程
4、序可以修改里面的数据。Flash是一种创作工具,设计人员和开发人员可使用它来创建演示文稿、应用程序和其它允许用户交互的内容。Flash可以包含简单的动画、视频内容、复杂演示文稿和应用程序以及介于它们之间的任何内容。Flash特别适用于创建通过Internet提供的内容,因为它的文件非常小。Flash是通过广泛使用矢量图形做到这一点的。与位图图形相比,矢量图形需要的内存和存储空间小很多,因为它们是以数学公式而不是大型数据集来表示的。位图图形之所以更大,是因为图像中的每个像素都需要一组单独的数据来表示。在Flash中创作内容时,需要在Flash文档文件中工作。Flash文档的文件扩展名为.fla。
5、Flash文档有四个主要部分: 1. 舞台是在回放过程中显示图形、视频、按钮等内容的位置。在Flash基础中将对舞台做详细介绍。 2. 时间轴用来通知Flash显示图形和其它项目元素的时间,也可以使用时间轴指定舞台上各图形的分层顺序。位于较高图层中的图形显示在较低图层中的图形的上方。 3. 库面板是Flash显示Flash文档中的媒体元素列表的位置。 4. ActionScript代码可用来向文档中的媒体元素添加交互式内容。例如,可以添加代码以便用户在单击某按钮时显示一幅新图像,还可以使用ActionScript向应用程序添加逻辑。逻辑使应用程序能够根据用户的操作和其它情况采取不同的工作方式。
6、Flash包括两个版本的ActionScript,可满足创作者的不同具体需要。1.2 Flash的特点1. 使用矢量图形和流式播放技术。与位图图形不同的是,矢量图形可以任意缩放尺寸而不影响图形的质量;流式播放技术使得动画可以边播放边下载,从而缓解了网页浏览者焦急等待的情绪。 2. 通过使用关键帧和图符使得所生成的动画(.swf)文件非常小,几K字节的动画文件已经可以实现许多令人心动的动画效果,用在网页设计上不仅可以使网页更加生动,而且小巧玲珑下载迅速,使得动画可以在打开网页很短的时间里就得以播放。 3. 把音乐,动画,声效互方式融合在一起,越来越多的人已经把Flash作为网页动画设计的首选工具
7、,而且可以支持MP3的音乐格式,这使得加入音乐的动画文件也能保持小巧的身材。 4. 强大的动画编辑功能使得设计者可以随心所欲地设计出高品质的动画,通过ACTION和FS COMMAND可以实现交互性,使Flash具有更大的设计自由度,另外,它与当今最流行的网页设计工具Dreamweaver配合默契,可以直接嵌入网页的任一位置,非常方便。1.3 Flash游戏Flash游戏在游戏形式上的表现与传统游戏基本无异,但主要生存于网络之上,因为它的体积小、传播快、画面美观,所以大有取代传统web网游的趋势,现在国内外用Flash制作无端网游已经成为一种趋势,只要浏览器安装了ADOBE的Flash pla
8、yer,就可以玩所有的flash游戏了,这比传统的web网游进步许多信息资料收集,需求分析对于Flash游戏而言,容量同比来说是最小的,而且占用时间很短,可以起到放松娱乐,休闲身心的作用,其具体有体积小、内容好、耐玩、娱乐性高、无年龄层次、能修改难度、有益身心健康、数量多、玩法丰富新颖等特色。1.4 Flash游戏的发展方向Flash被称为是“最为灵活的前台”。由于其独特和时间片段分割(TimeLine)和重组(MC嵌套)技术,结合ActionScitp的对象和流程控制。使得在灵活的界面设计和动画设计中成为可能,但一直还未形成一套在flash中的界面设计理论。同时它也是最为小巧的前台。Flas
9、h具有跨平台的特性(这点和Java一样),所以无论你处于处于何种平台,只要你安装有支持的flash Player。你就能保证它们的最终显示效果都一致。而不必像在以前的网页设计中那样为IE和Mozilla或NetSpace各设计一个版本。同Java一样。它的可移植性很强。特别是在小型网络中和小型设备中(当然大型网络已不用说),最近具有的手机支持功能可以让你为自已的手机设计你喜爱的功能。当然你必需要有支持flash的手机。当然它还可以应用于Pocket PC上。目前利用FLASH开发出了许多夸平台的网络游戏,甚至可以匹敌大型MMOR,在3G时代到来以后,我们很快可以在手机上玩到大型网络游戏,现有的
10、FLASH制作网络游戏有:SLG类(热血三国),体育类(热血球球),RPG类(凡人修真),桌面(德州扑克),TD类(保卫家园)等等.FLASH小游戏的流行FLASH是开发的网页富媒体及强交互技术,最初用来研发交互式或动画网站组件,近几年获得了突飞猛进的发展。根据Adobe公司的统计,其互联网PC桌面普及率达到了惊人的99%,而JAVA为85.1%。目前FLASH更在大力向PDA及智能手机终端发展。FLASH技术包含一套可编程脚本解析器,称为ActionScript,使用与Java及Javascript类似语法,可以控制FLASH动画,实现多种交互功能。AS3.0更支持了Socket联网功能,使
11、得开发大型交互式网页游戏成为可能。凭借ActionScript2.0及ActionScript3.0的出色表现,FLASH技术成为了绝大多数小游戏开发的技术基础。 FLASH的解析器,称为Flash Player,体积十分小巧。不仅可以支持流行的IE浏览器,还可以支持Firefox, Opera, Safari等多款浏览器,用户下载安装非常方便。这也是Flash小游戏流行的重要原因之一。第二章 游戏设计思路2.1游戏的框架游戏分为片头,游戏选择主界面和游戏界面。片头动画播放完后,进入游戏选择画面,由玩家自主选择试玩的游戏。2.2游戏的组成1. 片头:利用影片导入和插入关键帧来制作片头特效。2.
12、 游戏主界面:在片头结束之后自动播放游戏主界面,游戏主界面提供需要试玩的游戏的选择按钮。分为打鸟,大鸭子两种。3. 游戏一:打鸟。游戏开始后,会有鸟从右侧飞出,玩家控制准心点击飞行的鸟,将其击落。此游戏没有时间限制,分数也没有上限,直至玩家自行退出,属于无聊发泄型游戏。 4. 游戏二:打鸭子。游戏开始后,进入3秒倒计时,倒计时结束,在水中游的鸭子就会起飞,这时玩家可以控制准心打击飞起的鸭子,击落1只得一分。游戏开始后会进入30秒计时,时间到则游戏结束。2.3场景间的转换1. 主要用到gotoAndPlay动作。on (release) Mouse.show();/把玩游戏时隐藏的鼠标再显示出来
13、 delete _root.onEnterFrame; for(i=1;i100;i+) thismc+i.removeMovieClip();/删除在游戏里创建的MC _root.mc.swapDepths(1);/交换深度,深度设为正的才能删除 removeMovieClip(_root.mc);/删除游戏里创建的MCgotoAndPlay(过场,1);/跳转到过场1的第一帧2. 在游戏一到主场景,游戏二到主场景之间切换时,为其加入了一个过场动画,增加美观性。15第三章 Flash游戏的功能实现3.1 打鸟1. 鸟儿飞行动画。如Error! Reference source not fou
14、nd.,在网上找到鸟儿飞行的逐帧动画素材,导入后作为元件2. 鸟儿击落动画Error! Reference source not found.,对逐帧动画进行分裂,作为击落鸟儿时的动画 3. 准心元件的建立新建元件,画出准心的形状4. 主场景1) 在主场景第一帧添加代码:for(i=1;i=5;i+)_rootface.duplicateMovieClip(face+i,i+1000,face);/复制face元件var score = 0;/定义分数从0开始stop();2) 将小鸟元件拖入主场景,并添加代码:onClipEvent(load)function reset()if(this.
15、_name=face)this._visible=false;elsethis._visible=true;this.dead=0;this.speed=random(4)+5;/小鸟飞行速度this._x=600;this._y=random(400);/定义小鸟随机飞行坐标this.reset();onClipEvent(enterFrame)this._x-=this.speed;if(this._x-100)this.reset();/小鸟超出屏幕范围后重置3) 将准心元件拖入主场景,并添加代码:onClipEvent (load) startDrag(this, true);Mous
16、e.hide();this.swapDepths(9999);/在场景上生成MC,隐藏鼠标,并定义MC深度onClipEvent(mouseDown)/鼠标按下动作playsounds = new Sound(this);playsounds.attachSound(Gun_s);playsounds.start(0, 1);/播放枪声for(i=1;i=5;i+)if(this.hitTest(_rootface+i)&_rootface+i.dead=0)_root.score += 10;/打中小鸟加分_rootface+i.gotoAndPlay(2);/继续生成小鸟3.1 打鸭子1.
17、 飞行的鸭子 通过逐帧动画画出一只飞行的鸭子, 2. 击落的鸭子用逐帧动画画出鸭子被击落的样子, 3. 游动的鸭子画出来回游动中的鸭子的逐帧动画, 4. 准心画出准心5. 子弹发射动画画出子弹从近到远发射的补间动画, 6. 主场景1) Action层为动作层第一帧stop();readytime = 0;ready = 3;timer = 0;time = 0;_root.onEnterFrame = function() readytime+;ready = 3-int(readytime/5); /游戏开始后进行一个倒计时if (ready = 0) gotoAndStop(2);/倒计时
18、结束,跳转到第二帧,游戏开始delete _root.onEnterFrame; 第二帧stop();Mouse.hide();/隐藏鼠标score = 0;/计分器从0开始function firstPos() _root.bird._x = 50+random(450);_root.bird._y = 370;dirX = random(5)-random(6);/小鸟飞飞_root.target.onMouseMove = function() this._x = _root._xmouse;this._y = _root._ymouse;updateAfterEvent();/瞄准镜跟
19、随鼠标;_root.target.onEnterFrame = function() time+;_root.timer = 30-int(time/30);if (_root.timer = 0) _root.gotoAndPlay(打鸭子,3);/倒计时;_root.target.onMouseDown = function()/鼠标按下动作 playsounds = new Sound(this); playsounds.attachSound(Gun_s); playsounds.start(0, 1);/播放枪声_root.tan._x = _root._xmouse;_root.t
20、an._y = _root._ymouse;_root.tan.play();/子弹跟随鼠标_root.onEnterFrame = function() if (_root.tan._currentframe = 10) hit = _root.tan.hitTest(_root.bird);if (hit) firstPos();_root.score+;with (_root.diebird) _x = _root.tan._x;_y = _root.tan._y;gotoAndPlay(2);/发射子弹_root.bird.onEnterFrame = function() if (_
21、root.bird._y0 | _root.bird._x550) firstPos(); else _root.bird._y -= (5+random(2);_root.bird._x += dirX;第三帧stop();_root.replay.onEnterFrame = function() if (_root.tan._currentframe = 10) hit2 = _root.replay.hitTest(_root.tan);if (hit2) _root.gotoAndStop(1);/点击replay重新开始游戏2) TIMER层为计时器,游戏开始后倒计时30秒。3)
22、成绩栏用来记录游戏中得到的分数4) 子弹层为子弹元件所在层第四章 总结对三个小游戏的制作中我进一步了解到了Flash具体功能,从逐帧动画的元件的转换利用,从脚本代码的编写到函数语句的运用,从引导层与遮罩层的相互利用,让我认识到制作一个游戏并不是那样的简单,这期间遇到了很多不会的知识,和难以编写的代码,但通过老师,同学,以及书本网络的帮助,慢慢的解决了这些难点。参考文献1罗小燕,flash动画与卡通制作创意导航。北京,清华大学出版社,2002。2高志清,flash动画制作零点飞跃学设计零点飞跃丛书。水利水电出版社,20053李琼。Flash8.0闪客动画轻松现场实战。航空工业出版社,2007.4
23、德汉,周辉,flash MX 2004网页动画制作标准教材。电子工业出版社,20045赵子江,变形动画制作教程。北京,机械工业出版社,20006赵国志,赵璐,色彩构成于绘画设计艺术。辽宁,美术出版社,20007瑞哈特(美),曹铭。Flash MX 宝典。电子工业出版社,20038雪之航工作室,flash MX 中文版技巧与实例。中国铁道出版社,20039陈青,flash MX 2004 标准案例教材。人民邮电出版社。2006谢辞在此次Flash游戏的制作中,涉及方面很多注意的细节也很多要求有较清晰的思路将每个动画元件的加载,从制作中了解了脚本游戏对于函数要求的严密性。每一个场景,每一个游戏打的制作都必须具备Flash基本操作,但是在不同的方面所侧重的知识技能技巧是不同的,我从对于自己作品的制作中深有体会,这也是我对毕业设计的最深体会。通过这次的毕业设计,了解到 Flash的基本操作, Flash动画的三大基本功能是一切Flash动画应用的基础,其实我对Flash制作代码方面的专业知识不太懂,在设计上所用到代码有很多都是最简单常用的代码,在网上看Flash大师的站点构思,设计想法,在每个涉及到细节,我都找了许多相关资料,也许做的不够好,但今后我会努力
限制150内