




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计-网页游戏设计与制作第1页共29页网页游戏--太平天国OL开发【摘要】本文对网页游戏的概念、特性和当今国内外发展情况做了简要介绍,在B/S上设计并实现一个网页游戏。以软件设计模式思想,OOP编程方式,从需求分析,框架设计,模块设计,开发环境配置等方面,阐述了网页游戏的设计开发过程。主要完成以下内容:服务器环境的配置,apache+mysql实现。以php为后台数据处理语言,amfphp为flash与php交互工具,mysql为数据库的一个系统。游戏后台处理,实现对flash返回数据的较复杂的逻辑处理。Flash游戏前端编程,实现注册,登录,消息盒,喂养,出售,购买家禽,购买食物,查找固定好友并添加,随机获得好友并添加,属性排行榜,仓库,查看好友家禽状态,帮助好友喂养家禽,家禽属性实时更新模块。FlashUI,单独绘制多种框架比如商店,仓库,好友列表,帮助,添加好友页面,顶部信息条,信息盒页面等。架构,选取了高效的amfphp,区别于时下流行的json数据交换,是以二进制的格式进行的高效数据交换方式。毕业设计-网页游戏设计与制作全文共30页,当前为第1页。【关键词】flash;actionscript3.0;网页游戏;amfphp;休闲类毕业设计-网页游戏设计与制作全文共30页,当前为第1页。1.前言1.1计算机类游戏的发展情况游戏的发展也经过了一段历程。从最原始的游戏到现在集计算机人工智能,计算机图形学,多媒体技术,网路通信技术一体的游戏,可玩性和体验性也随着计算机硬件的提高而得到很大的进步。游戏已经俨然成为现代人生活娱乐的不可或缺的一部分。发展至今,游戏可以分为几类:单机游戏,网络游戏,虚拟现实游戏和无客户端网络游戏四种不同的设计思想[1]。从历史的长河看计算机类游戏的发展,计算机类游戏从最开始的单机文本类游戏开始,到益智类游戏等,这些都是下非常小型的单机游戏,随着计算机硬件的发展,大型的单机游戏应运而生,迅速获得玩家的青睐,而显示技术的提高,就直接把单机的2维游戏推向了3维,游戏3维游戏的用户体验得到明显的提高,基本取代了2d的单机游戏。当然随着网络的发展,带宽的不断提高,游戏终于和网络连接在一起,发展成为B/S架构的网络游戏,网络游戏由于支持多用户同时进行游戏,大大提高了用户的交互性,斩获了大片的计算机类游戏市场。当然从计算机效率来说,想获得更高的体验,就必须花费更多的空间或者时间,这就直接让游戏变得巨型化(比如10G左右的魔兽世界),和对3d图形处理的苛刻要求(比如极品飞车);人们在玩游戏之前就不得不下上很久的客户端,或者需要更高的图形处理能力的显卡来支持游戏的运行。随着网络的发展,游戏开发公司竞争越来越大,蛋糕做大了,就有越来越多的人想来分享。至此,越来越多的游戏开发公司意识到,用户的体验和游戏的人性化将会获得更多游戏玩家的青睐。同时软件的发展也意识到这一点,google提出了云计算的概念,紧跟着就是SaaS的一个云计算的产品的出现,说明软件的作用是给用户提供服务。开始吧office等一切也搬到网络上来,由b/s架构华丽转变成c/s架构。另一方面,游戏也开始了这方面的探索,而作为多媒体著作软件的巨头adobe公司开发的flash,一度成了互联网网站的点睛之笔。世界上98%的浏览器安装了flash插件,有百分之八十一的视频播放软件是用flash,毫无悬念,flash是RIA的绝对领军人物,神话般的人物,既是今天的html5标准的出现,既是它被称为有着很多flash的功能,但是从效率方面来说,flash在执行大程序的时候几乎是html5的3倍,拥有着无可比拟的优势。于是理所当然几乎所有的网页游戏都选择用flash来开发网页游戏,它有着得天独厚的UI前端开发优势。1.2flash的发展毕业设计-网页游戏设计与制作全文共30页,当前为第2页。Flash网页游戏发展也是有着历史根源的。在网络和硬件设备不断强大的时候,micromidia公司出产的flash被adobe相中,在其发展到flash8版本的时候将其收购,正式并入adobe这个多媒体的巨头公司里面。Adobe接手后出的第一个版本就让flasher欣喜若狂,主要是因为官方的Flashplayer和Actionscript开发团队意识到发展现有的引擎,将有着太多的限制而无法继续。经过这些人们的不懈努力后,flashplayer9版本首次引入Actionscript3和新一代的Actionscript引擎-Actionscriptvirutalmachine(AVM2),Actionscript3基本上是Actionscript引擎的完全重写,AVM2是一个新的,高度优化的虚拟机,Actionscript3在其中执行可以达到前所未有的效率和高性能。最多甚至可以比原有的Actionscript代码快10倍[2]。Actionscript3的核心语言与ECMAScript标准兼容;更加清晰,有效的模仿了W3C的时间规范模型,该事件模型提供了生成和处理事件消息的一种标准方法;是一种面向对象的编程语言。毕业设计-网页游戏设计与制作全文共30页,当前为第2页。高效和令人满意的版本让开发者更加坚定地把flash应用在各种领域上,比如应用程序,操作系统界面,手机领域的开发,游戏开发,web应用服务,站点建设,多媒体娱乐,教学系统,生物技术模拟,等等。结合网络和硬件的发展,flash网页游戏应运而生。1.3flash网页游戏的发展毕业设计-网页游戏设计与制作全文共30页,当前为第3页。最开始的时候,flash只是用来做一些简单的游戏。比如纸牌游戏,猜拳游戏,等等一些逻辑和功能都非常有限的程序。发展到现在flash依然占据了大片单机小游戏的市场,只是细分了很多类,比如益智类,休闲类,棋牌类,冒险类,体育类,射击类等等,虽然有些刚开始的小游戏到现在还在,但是一样的游戏,随着flash的发展从界面上和玩法上都已经很不一样了,比如下面这款俄罗斯方块:毕业设计-网页游戏设计与制作全文共30页,当前为第3页。图1Flash版俄罗斯方块它有着一个模拟现实的重力系统,哪边重了会倒下去,下面则是万丈深渊,会掉下去,等等。当然在我们看来只是在一个引擎上开发的一个经典游戏,按照李彦宏的观点来说就是新瓶装旧酒。但是flash却没有往大型的3d游戏发展,又是什么原因呢?原因很简单,因为它不支持硬件加速。这个也可以说是好事情,因为如果支持可能早就被其他大型游戏开发软件给吞没在茫茫的软件中。这也给flash网页游戏的发展奠定基础。随着flash版本对后台的支持,爱好者一直在为flash找出路。这个时候网页游戏已经出现,但是它是基于js直接就加后台的,前开的UI非常有限,可玩性非常低,这个时候,flash由于强大的UI前端开发,结合数据交换技术,无缝地和服务器语言连接起来,形成玩家体验较好,后台强大的网页游戏。其中国内红火一时的基于flash的网页游戏休闲类游戏和MMORPG游戏现在正在蓬勃发展。短小而精悍的flash总会给人有意想不到的惊喜。当然,促进国内flash网页游戏发展还是有一些决定性因素的,就像今天的触屏手机,那是iphone在赶鸭子上架。毕业设计-网页游戏设计与制作全文共30页,当前为第4页。毕业设计-网页游戏设计与制作全文共30页,当前为第4页。1.4国内外的发展情况 目前国内外网页游戏的发展不太一样,国外的flash网页游戏已经利用了开源的一些3d引擎开发了一些基于flash的3d网页游戏,具有非常高的可玩性。比如下面这个基于3D引擎Alternativa3D开发的一个游戏:图2游戏赛车国外由于网络普及,带宽非常可观,所以不存在考虑游戏的本身大小问题,他们做flash游戏只是单纯的用技术去创造它,而不是主要在商业。这就让国内外的flash网页游戏发展大不一样。在国内,由于网络速度还不是非常的快,与国外差距比较大,国内一般都在走休闲类游戏的方向,因为休闲类游戏比较小,下载比较快,也不用花太多的时间去玩,只是平时娱乐而已。而MMORPG网页游戏的发展,本论文认为是一个瓶颈,它无法与b/s架构的MMORPG游戏比拟,下载速度也比较慢,用户体验不高,至少在当前中国的情况下是这样的。毕业设计-网页游戏设计与制作全文共30页,当前为第5页。下面这款是风靡一时的开心农场,就是本论文上面提及的推动中国flash网页游戏遍地开花的一款SNS游戏。毕业设计-网页游戏设计与制作全文共30页,当前为第5页。图3QQ农场现在依然非常风靡,上至知天命之年,下至三岁儿童,都有玩这个游戏。再看看这款MMORPG国内的代表之作天书奇谈:毕业设计-网页游戏设计与制作全文共30页,当前为第6页。图4天书奇谈毕业设计-网页游戏设计与制作全文共30页,当前为第6页。由于MMORPG还不是最好的发展阶段,本论文在休闲类游戏上做出新的构思和实现方法。1.5本文研究内容和结构组织 本论文主要是介绍整个flash游戏的发展及本作者开发的太平天国OL的整个过程。 本文的组织结构如下: 第一章是前言。介绍游戏的发展史,flash游戏国内外的最新情况和本文选材的原因。 第二章对太平天国游戏的玩法的具体介绍,这个游戏实现了什么。玩的流程是什么,吸引人的地方在哪里。 第三章是对开发此游戏的前端技术后台技术及交互技术,及这种技术的优点所在的一个详细介绍。 第四章是面向对象的介绍整个游戏的设计框架,模块。分为前端,数据库,和交互模块阐述。 第五章是展示部分重要的源代码和对源代码的重要部分的解释。 第六章是总结。主要是对本文的研究做一个总结。开发技术及软件2.1FlashCS3IDE图5Flashcs3logoAdobeFlashCS3是Adobe公司收购Macromedia公司后将享誉盛名MacromediaFlash更名为AdobeFlash后的一款动画软件。Flash软件可以实现多种动画特效,动画都是由一帧帧的静态图片在短时间内连续播放而造成的视觉效果,是表现动态过程、阐明抽象原理的一种重要媒体,尤其在医学CAI课件中,使用设计合理的动画,不仅有助于学科知识的表达和传播,使学习者加深对所学知识的理解,提高学习兴趣和教学效率,同时也能为课件增加生动的艺术效果,特别对于以抽象教学内容为主的课程更具有特殊的应用意义[3]。2.2Actionscript3.0毕业设计-网页游戏设计与制作全文共30页,当前为第7页。ActionScript是Adobe®Flash®Player和Adobe®AIR™运行时环境的编程语言。它在Flash、Flex和AIR内容和应用程序中实现交互性、数据处理以及其它许多功能。毕业设计-网页游戏设计与制作全文共30页,当前为第7页。ActionScript是由FlashPlayer和AIR中的ActionScript虚拟机(AVM)执行的。ActionScript代码通常由编译器(如Adobe®Flash®CS4Professional或Adobe®Flex™Builder™的内置编译器或Adobe®Flex™SDK中提供的编辑器)编译为“字节代码格式”(一种由计算机编写并且计算机能够理解的编程语言)。字节码嵌入在SWF文件中,SWF文件由FlashPlayer和AIR执行[4]。ActionScript3.0提供了可靠的编程模型,具备面向对象编程的基本知识的开发人员对此模型会感到似曾相识。ActionScript3.0相对于早期ActionScript版本改进的一些重要功能包括:一个新增的ActionScript虚拟机,称为AVM2,它使用全新的字节代码指令集,可使性能显著提高;一个更为先进的编译器代码库,可执行比早期编译器版本更深入的优化;一个扩展并改进的应用程序编程接口(API),拥有对对象的低级控制和真正意义上的面向对象的模型;一个基于ECMAScriptforXML(E4X)规范(ECMA-357第2版)的XMLAPI。E4X是ECMAScript的一种语言扩展,它将XML添加为语言的本机数据类型;一个基于文档对象模型(DOM)第3级事件规范的事件模型。2.3MySQL图6Mysqllogo毕业设计-网页游戏设计与制作全文共30页,当前为第8页。MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,在2008年1月16号被Sun公司收购。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库[5]。毕业设计-网页游戏设计与制作全文共30页,当前为第8页。2.4Navicat8图7NavicatlogoNavicatMySQL是一个强大的MySQL数据库服务器管理和开发工具。它可以与任何3.21或以上版本的MySQL一起工作,并支持大部分的MySQL最新功能,包括触发器、存储过程、函数、事件、视图、管理用户,等等。它不仅对专业开发人员来说是非常尖端的技术,而且对于新手来说也易学易用。其精心设计的图形用户界面(GUI),NavicatMySQL可以让你用一种安全简便的方式快速并容易地创建,组织,访问和共享信息。NavicatMySQL在三种平台上是可用的——微软Windows、MacOSX和Linux操作系统。它可以使用户连接到本地/远程服务器,提供了几种实用工具,例如数据结构同步、导入/导出、备份和报告,使维护数据的过程很容易[6]。主要功能-表单检视(新增)-虚拟群组(新增)-自动完码(新增)-排程工作结果自动传送电子邮件(新增)-查询、检视及事件自动完码(新增)-报告可汇出成各种格式,PDF,Excel,HTML等(新增)-超时自动重新连接到SQL服务器-数据和结构同步-导出注册文件以传送到另外的计算机-新查询创建器--为不同的数据库创建查询-查询参数-SQL控制台-建立查看-SSH密钥毕业设计-网页游戏设计与制作全文共30页,当前为第9页。-支持所有MySQL版本毕业设计-网页游戏设计与制作全文共30页,当前为第9页。-SSH及HTTP隧道-汇入/汇出数据-报表设计及建立2.5Zendstudio图8ZendstudiologoZendStudio是ZendTechnologies开发的PHP语言集成开发环境(IntegratedDevelopmentEnvironmentIDE)。也支持HTML和js标签,但只对PHP语言提供调试支持。因为是同一个公司的产品,所以提供的ZendFramework方面的支持比其他软件好。ZendStudio5.5系列后,官方推出利用了Eclipse平台,基于PDT的ZendStudioforEclipse6.0,之后的版本也都构建于Eclipse。ZendStudio是屡获大奖的专业PHP集成开发环境,具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能。2.6Amfphp图9AmfphplogoAMFPHP是PHP的远程调用(RPC,RemoteProcedureCall)工具。它可以使PHP与下述技术无缝通信:(1)Flash和FlexRemoting(2)JavaScriptJSON和AjaxJSON(3)XML和XML-RPC工作原理:毕业设计-网页游戏设计与制作全文共30页,当前为第10页。客户端(Flash/Flex)与服务器端(PHP)使用相同的方式描述方法调用和复杂数据。客户端序列化请求并将它发送到网关AMFPHP。AMFPHP再执行:毕业设计-网页游戏设计与制作全文共30页,当前为第10页。(1)反序列化请求(2)找到相应的远程服务类(3)实例化类(4)执行安全检查(5)(使用指定参数)调用服务器端方法(6)序列化返回的数据AMFPHP可以正确地序列化、反序列化复杂类型数据。除了对象和数组,它还支持resources数据连接资源,这就意味着我们可以通过调用远程方法简单返回mysql_query,amfphp会处理这一切。如果平台支持(目前来说,FlashRemoting和FlexRemoting),AMFPHP还可以处理循环引用和自定义数据它也支持简单的远程调试。还有AMFPHP附带一个浏览器,它可以在创建客户端代码前测试远程服务。AMFPHP1.0.1还添加了模板,可以自动生成客户端代码。AMFPHP1.9beta更是新增了对AMF3的支持。2.7Tweener引擎多年来,补间引擎Tweener赢得了相当多用户的欢迎。最初他是一个ActionScript2.0版本的引擎,后来被移植到ActionScript3.0,现在两个版本都有。实际上,Tweener至少部分是基于更早的一款ActionScript1.0引擎MCTween开发的,它发布于2003年。Tweener最初由ZehFernando()编写,也有其他一些人的贡献。安装Tweener之前要到Google代码库:/p/tweener/下载源文件。这个包的顶层目录叫做caurina。把这个文件夹放到与你其他的项目文件相同的文件夹(或者其他你的开发环境能找到的地方)。这个引擎的主类是caurina.transitions.Tweener。2.8EnterpriseArchitect图10EAlogo生命周期软件设计方案——EnterpriseArchitect是以目标为导向的软件系统。它覆盖了系统开发的整个周期,除了开发类模型之外,还包括事务进程分析,使用案例需求,动态模型,组件和布局,系统管理,非功能需求,用户界面设计,测试和维护等。毕业设计-网页游戏设计与制作全文共30页,当前为第11页。EA为用户提供一个高性能、直观的工作界面,联合UML2.0最新规范,为桌面电脑工作人员、开发和应用团队打造先进的软件建模方案。该产品不仅特性丰富,而且性价比极高,可以用来配备您的整个工作团队,包括分析人员、测试人员、项目经理、品质控制和部署人员等[7]。毕业设计-网页游戏设计与制作全文共30页,当前为第11页。主要特性UML设计和构建使用案例,逻辑,动态和物理模型定制进程模型的扩展或其他高品质的MSWord兼容文档应用直观方便低许可费数据建模,前向DDL数据库工程,反向ODBC数据库工程多用户(Professional和CorporateEdition)前向或逆向代码工程(Professional和CorporateEdition)——支持Java,C#,C++,VB.Net,Delphi,VisualBasic和PHPXML导入/导出容易拼写检查游戏模块化设计与整体架构3.1总体结构图总的来说,游戏的架构如下:毕业设计-网页游戏设计与制作全文共30页,当前为第12页。图11太平天国逻辑结构图毕业设计-网页游戏设计与制作全文共30页,当前为第12页。说明:游戏的每一个窗口都是一个类,有自己特别的扩展内容,它们都继承了Cframe.as类,这个类专门为本游戏编写,继承自MovieClip,是一个显示类,用于实现鼠标的按下拖动和放开。图12UML中的flash类关系图毕业设计-网页游戏设计与制作全文共30页,当前为第13页。图13UML中Flash类关系图毕业设计-网页游戏设计与制作全文共30页,当前为第13页。3.2模块化说明3.2.1后台数据库模块Db_axiom数据库表1Tb_register表id:主键name:注册用户的名字password:注册用户的密码coin:用户的游戏币,默认注册用户赠送1000Headpic:用户头像,暂时不支持上传,从库中随机获取。表2Tb_message表Id:主键Who:此消息是谁的。Message:消息内容。Haveread:是否已读。0为已读,1为未读。表3Tb_havesell表Id:主键毕业设计-网页游戏设计与制作全文共30页,当前为第14页。Who:本家禽原主人毕业设计-网页游戏设计与制作全文共30页,当前为第14页。Animal_kind:动物种类Last_price:最终售出价格Last_chundu:最终获得纯度Ever_id:这只家禽的曾经的id表4Tb_friend表Id:主键Main_id:加好友人的idFriend_id:好友的id表5Tb_food_user表Id:主键Who:谁拥有这个食物Food_kinds:食物的种类Food_number:食物的数量表6Tb_food表Id:主键Foodname:食物的名称Animaleat:那种动物的食物毕业设计-网页游戏设计与制作全文共30页,当前为第15页。Foodimage:食物的图像毕业设计-网页游戏设计与制作全文共30页,当前为第15页。Foodchun:食物的纯度Foodprice:食物的价格表7Tb_animal_name表Id:主键Animalname:动物的名字Price:动物的价格Picture:动物的图像表8Tb_animal表Id:主键Who:谁的家禽Level:家禽等级Keepleveltime:维持这个等级的时间Currentchecktime:最早查看时间,包括朋友和自己对这只家禽的查看Kinds:家禽种类Hungry:家禽饥饿程度Chundu:家禽纯度Eatingstatus:进食状态,如果进食状态为1,表示正在进食,将不可以喂养。Eatingbegintime:进食开始时间Height:家禽重量毕业设计-网页游戏设计与制作全文共30页,当前为第16页。毕业设计-网页游戏设计与制作全文共30页,当前为第16页。Lots_chun最高纯度的一个视图:定义:select`tb_register`.`name`AS`name_chun`,`v_lastchun`.`last_chundu`AS`chundu`,`tb_register`.`headpic`AS`chun_pic`from(`tb_register`join`v_lastchun`)where((`tb_register`.`id`=`v_lastchun`.`who`)and`v_lastchun`.`last_chundu`in(selectmax(`v_lastchun`.`last_chundu`)AS`max(last_chundu)`from`v_lastchun`))[8]Lots_money最高游戏币的一个视图定义:select`tb_register`.`name`AS`name_money`,`tb_register`.`coin`AS`coin`,`tb_register`.`headpic`AS`money_pic`from`tb_register`where`tb_register`.`coin`in(selectmax(`tb_register`.`coin`)AS`max(coin)`from`tb_register`)Lots_price最高单价的一个视图定义:select`tb_register`.`name`AS`name_price`,`tb_havesell`.`last_price`AS`price`,`tb_register`.`headpic`AS`price_pic`from(`tb_register`join`tb_havesell`)where((`tb_register`.`id`=`tb_havesell`.`who`)and`tb_havesell`.`last_price`in(selectmax(`tb_havesell`.`last_price`)AS`max(last_price)`from`tb_havesell`))Thefirst:三个最高的一个集合视图定义:select`lots_chun`.`name_chun`AS`name_chun`,`lots_chun`.`chundu`AS`chundu`,`lots_chun`.`chun_pic`AS`chun_pic`,`lots_money`.`name_money`AS`name_money`,`lots_money`.`coin`AS`coin`,`lots_money`.`money_pic`AS`money_pic`,`lots_price`.`name_price`AS`name_price`,`lots_price`.`price`AS`price`,`lots_price`.`price_pic`AS`price_pic`from((`lots_chun`join`lots_money`)join`lots_price`)毕业设计-网页游戏设计与制作全文共30页,当前为第17页。V_lastchun毕业设计-网页游戏设计与制作全文共30页,当前为第17页。所有卖出的家禽的纯度由高到低的排列定义:select`tb_havesell`.`who`AS`who`,max(`tb_havesell`.`last_chundu`)AS`last_chundu`from`tb_havesell`groupby`tb_havesell`.`who`orderbymax(`tb_havesell`.`last_chundu`)desc3.2.2Amfphp数据处理模块Login.phpLogin封装类,里面包含register函数和loginn函数Register函数负责注册用户,判断用户名是否存在,如果注册成功,将自动写入用户名,默认1000个游戏币,和获得三只不同纯度的鸡鸭猪,如果成功返回整型的id,失败则返回字符串。Loginn函数负责登陆,如果成功返回整型的用户id,失败则返回字符串。Buyanimal.phpBuyanimal封装类,里面包含buy函数Buy函数参数是买家的id,家禽的种类kind,和要买家禽的个数number,函数会判断当前用户是否有足够的金额,如果没有返回字符串,如果有,返回整型1,并插入数据。Buyfood.phpBuyfood封装类,里面包含buy函数Buy函数参数是买家的id,食物的类别kind,和要买食物的个数number,如果不够钱将返回3,如果玩家本来没有这种食物,那么会重新建立一行数据,如果买家已经有大于0个的相同数据,将存入,成功返回1,意外错误返回2。Weiyang.phpWeiyang封装类,里面包含wei函数参数是喂养玩家的id,家禽的id,和食物的id,如果检测喂养状态为正在喂养,则喂养失败。如果成功,则改写喂养时间,并且标志喂养状态为1。Myfood.phpMyfood封装类,里面包含food函数参数是玩家的id,只要传入玩家的id则会返回玩家的所有种类的食物。毕业设计-网页游戏设计与制作全文共30页,当前为第18页。Check.php毕业设计-网页游戏设计与制作全文共30页,当前为第18页。Check.php封装类,里面包含check_people函数这个函数功能比较强大,传入id会更新这个id的家禽的比较现在的时间,然后更新最近查看时间,更新温饱度,更新等级,然后再返回数据。Sell.phpSell.php封装类,里面包含havesell函数这个函数主要负责出售玩家自己的家禽,并计算家禽的最后重量,纯度,然后存入tb_havesell表中,并删除玩家在表tb_animal_user中的数据。Friend.phpFriend封装类,里面包含befriend函数,checkfriend函数和lookfriend函数Befriend函数参数是自己的id和将要加的朋友的id,此函数先会比较这两个函数是否一样,如果一样,返回不能加自己为好友,如果不一样,查询数据库,检查是否已经是朋友,如果是,则返回说已经是朋友了,不能重复添加,如果没有这位朋友,则写入数据库。Checkfriend函数参数是自己的id返回自己的朋友。Lookfriend函数没有参数,直接随机返回10个已注册的用户。Lookanimal.phpLookanimal封装类,里面包含look函数和lookfood函数Look函数没有参数,返回数据库中全部动物的详细信息。Lookfood函数没有参数,返回数据库中全部实物的详细信息。Therfirst.phpTherfirst封装类,里面包含first函数First函数负责返回数据库中最高游戏币,最高纯度,最高家禽单售价的详细信息。Serach.phpSerach封装类,里面包含seraching函数Seraching函数参数是一个名字,负责返回这个用户的id,如果没有,则返回字符串。Message.phpMessage封装类,里面包含news函数News函数参数是自己的id,返回这个id的所有邮件信息。Paiming.phpPaiming封装类,里面包含totalchundu_self,totalcprice_self函数。totalchundu_self函数返回自己已出售的所有家禽纯度的排名。毕业设计-网页游戏设计与制作全文共30页,当前为第19页。totalcprice_self函数返回自己已出售的所有家禽售价的排名。毕业设计-网页游戏设计与制作全文共30页,当前为第19页。3.2.3前端UI模块Cservice.asAs3的封装类,里面包含所有用来连接后台的函数,把Cservice分离出来,有利于更新和维护和安全性[9]。Cframe.asAs3的封装类,此类扩展了As3原有的MovieClip类,实现窗口拖动[10]。Cmanager1.asAs3的封装类,并且是整个游戏的文档类,总控制类,可以说是整个游戏的一个小型引擎。利用gof模式,优化了这个最常用的类,降低刷新次数,用一个侦听获得所有要改变的标志,侦听到此标志后,将立刻指向响应的函数,函数做出相应的处理[11]。Cstatus.asAs3的封装类,是一个静态类,里面所有的静态成员,负责暂存从数据库读出来的数据,减少只用访问一次数据库就可行的操作。或者用来交换数据。Cload.asAs3的封装类,主要负责图片等非文字资源的读取,并且展示读取的进度[12]。Cshop.asCanimal.asCbang.asCtop.asClogin.asCmessage.asCfriend.as毕业设计-网页游戏设计与制作全文共30页,当前为第20页。都是图形处理类,负责相应模块的显示,和装载数据。毕业设计-网页游戏设计与制作全文共30页,当前为第20页。关键代码介绍4.1注册模块流程图图14注册模块流程图4.2喂养,出售模块解释当鼠标放在家禽的身上,就会自动加载家禽详细信息表,过程是这样的,鼠标放在家禽的身上,就会自动匹配家禽的ID到Cstatus.as,匹配成功,返回数据,因为里面的数据已经预先存下来,但是进食情况因为需要实时性比较强,就会自己发送家禽的ID到Cservice.as的一个函数里面,这个函数会调用PHP连接服务器,如果没有进食,则返回一个预先约定要的字符串,如果进食,则返回进食时间。最后显示在家禽的详细列表上。毕业设计-网页游戏设计与制作全文共30页,当前为第21页。当鼠标放在家禽身上的时候,会拿家禽的信息(存在Cstatus.as的一个静态数组中)的第一条即家禽的主人ID去匹配Cservice.as中保留的登陆玩家的ID,如果匹配成功,则说明此家禽是玩家自己的,则显示出售按钮,点击出售,会触发一个事件,这个事件把Cstatus.as的一个静态字符串改变成提示信息,并且改变Cstatus.as中管理各个窗口状态标识的一个整型为1,Cmanager.as侦听到这个整型为1,则加载信息框,信息框在加载的时候会去读刚才改变的Cstatus.as中的一个字符串。最后在显示界面显示提问是否确定要出售这个家禽。点击取消则改Cstatus.as其中标识状态为0,Cmanager.as侦听到就关闭这个窗口,点击确定,就会传入家禽的ID到Cservice.as的出售处理函数上,Cservice.as发送这个ID到对应的Sell.php文件,Sell.php会根据此家禽的最后情况通过一条计算函数,把家禽的最终售价和纯度计算出来,并插入这只家禽的最后信息到tb_havesell表中,删除tb_animal表中有关这只家禽的信息,并把这只家禽主人的游戏币值从tb_register表中取出来,把这只家禽的售价加上去再存回去,并写入一条信息到消息盒tb_message中,然后返回家禽的最后售价和纯度到flash,flash通过刚才的步骤把消息显示出来,并改变Cstatus.as中标识最上边导航的信息盒消息盒的更新值,Cmanager.as侦听到这个值,就会update这些值,最后实时显示在最上面的玩家的钱和消息盒中。毕业设计-网页游戏设计与制作全文共30页,当前为第21页。4.3家禽离线增长代码离线增长为伪增长模式,实际上并没有真正的离线增长,只是当加载查看自己活或者朋友的家禽状态的时候,Cservice.as会通过要查看的玩家的要求的ID,自己或者朋友的,传入一个函数,这个函数会连接到check.php中,这段代码会把此ID下所有的家禽的状态取出来,匹配最后一次查看的时间和温饱情况,把现在的时间减去最后一次查看的时间,用约定好的规则去把这个事件转换为相应的结果,比如如果温饱情况大于50,则表示是在增长,此时用这个温饱度减去50,通过处理最后得到一个值,这个值告诉程序要多久才能让这只家禽变为饥饿状态,如果这个事件大于现在的时间减去之前查看的时间,那么说明现在这只家禽还是在增长状态,并把取得的时间减去现在和过去查看的时间差最后通过一个函数改变家禽的温饱情况,最后一次查看的时间戳,和此等级的维持时间,如果维持时间大于预设数字,那么等级将会升高一级,并且等级维持时间会减去相应的值,最后也改变家禽的重量,最后返回这只家禽的信息,让玩家感觉这些都是离线增长的家禽。4.4购买家禽和食物 点击商店图标,会自动改变Cstatus.as相应的值为1,Cmanager1.as侦听到这个值为1,打开商店窗口,并且Cmagaer.as侦听到另一个值为1,这个值让Cmanager.as去更新商店的数据,Cmanager1.as会调用Cservice.as的一个函数,这个函数会调用相应的PHP类,PHP去返回tb_food,tb_animal_name的数据,文字方面,商店会自动填充文字,图片方面,商店调用Cload.as类把返回的图片地址字符串传入Cload.as加载完成后把图片加载上来。选择好购买的数量,这个数量会存在Cstatus.as的一个值里面,当点击购买的时候,会把购买的家禽或者事物的ID和数量和自己的ID发送到Cservice.as上,Cservice.as把这组值发送到PHP上处理,PHP把家禽或者食物的信息调出来,并计算一共需要的游戏币,并通过ID获得玩家的游戏币,如果不够游戏币,返回一个预定值,如果够,则把玩家买的家禽或者食物插入到相应的数据库表中,最后返回购买成功,如果购买的是家禽,在点击关闭商店的窗口时会触发更新顶部信息和家禽显示数量,实现显示层信息与数据库信息的同步。4.5添加好友 由于上面已经解释显示层的做法,这里不再赘述。点击添加好友,弹出对话框让玩家输入好友的名字,或者随便看看。毕业设计-网页游戏设计与制作全文共30页,当前为第22页。 输入好友的名字,点击确定,同样把数据提交到Cservice.as,Cservice.as会提交到对应的PHP,PHP去查找数据表tb_register中是否有这个人,如果没有则返回约定字符串,追后显示出来,如果有,则到tb_friend查看是否已经是朋友或者这个ID是不是玩家本身,如果已经是朋友,返回预设值,如果是自己,也返回预设值,都不是的话,就符合加朋友的条件了,系统会插入两条数据到tb_friend中,并且往tb_message加入信息,告诉对方已经加他为好友,返回预设值,添加成功。毕业设计-网页游戏设计与制作全文共30页,当前为第22页。 如果点击随便看看,则系统会同样去Cservice.as调用函数,Cservice.as调用相应的PHP,最后随机返回预定个数据给玩家,当然有可能是自己,返回之后,玩家点击要添加的好友,并点击确定,流程和上面输入名字的一样。最后实时更新好友的列表。太平天国OL功能实现5.1CG动画太平天国OL的时间是被称为后江湖的年代。江湖的打打杀杀已经过去,侠客归隐田园,过着喂马劈柴生活。图15游戏截图毕业设计-网页游戏设计与制作全文共30页,当前为第23页。图16登录界面毕业设计-网页游戏设计与制作全文共30页,当前为第23页。5.2家禽系统每个用户必须先注册,注册成功后系统将自动赠送玩家1000的游戏币和鸡鸭猪三种家禽各一只。家禽有很多属性。重量,纯度,温饱情况,所处阶段。每喂家禽一次食,家禽都会增加相应的重量,当然这个重量是在一定范围内随机的,为了提高可玩性;每喂食一次家禽,家禽都会因为不同的食物而更改纯度,这个纯度是暗属性,也就是不同的食物会让家禽有不同的纯度,这个也是有一个公式算出来的。最后当玩家出售家禽的时候就会显示出来这个家禽最终卖的价格,和最终纯度。图17出售家禽成功界面毕业设计-网页游戏设计与制作全文共30页,当前为第24页。这个也就是排名的重要依据,在这个休闲游戏中,你的金钱总额,单只家禽的售价,家禽的纯度,都将会进行排名,在最上面有个一键看以上说的三种的所有玩家的总排名第一的玩家。毕业设计-网页游戏设计与制作全文共30页,当前为第24页。图18排行榜界面5.3喂养系统每只家禽都是会饥饿的,当温饱度变成50的时候,就是饥饿状态,饥饿状态时不能成长的。图19家禽状态界面毕业设计-网页游戏设计与制作全文共30页,当前为第25页。这个时候需要喂养,喂养的话则需要食物。食物是需要游戏币去买的。毕业设计-网页游戏设计与制作全文共30页,当前为第25页。图20喂养成功界面喂养一次将进食5分钟,这五分钟你不可以再喂养这只动物。5.4商城系统当然游戏可以买家禽和食物,只要你有足够的游戏币。毕业设计-网页游戏设计与制作全文共30页,当前为第26页。图21商城界面毕业设计-网页游戏设计与制作全文共30页,当前为第26页。5.5好友系统,信息系统在这里你可以添加你的好友,包括自定义添加和随机添加,添加好友不需要对方的认证,但添加成功会自动发信息给对方,告诉你已经添加他为好友。图21添加好友界面图22朋友列表界面毕业设计-网页游戏设计与制作全文共30页,当前为第27页。添加好友后,双方都会受到一条信息:毕业设计-网页游戏设计与制作全文共30页,当前为第27页。图23信息盒界面当然,就像看到的一样,出售家禽的信息也将出现在这里。5.6帮助信息也就是一些版权和简单的介绍。5.7即时聊天(后台暂未开发)5.8特别提示这个游戏主要的娱乐性是纯度,游戏不公开那种食物能给家禽多高的纯度,也不会即时显示家禽的纯度,而是最后才显示,带有不可预见性。而且同一种食物的纯度也是有个范围的,最后是经过一个随机范围的计算得出的。但是又不是完全不可预知的,这就需要玩家有经验
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 涤纶纤维在防霉地毯材料中的应用考核试卷
- 塑料鞋制造过程废料处理与回收利用考核试卷
- 生物制药过程中的质量控制实验室建设与管理考核试卷
- 电视广播信号加密与解密技术考核试卷
- 玻璃屋顶搭建考核试卷
- 电视芯片原理与系统集成考核试卷
- 皮革护理技能竞赛策划与实施考核试卷
- 阳泉职业技术学院《单片机技术与应用》2023-2024学年第二学期期末试卷
- 四川托普信息技术职业学院《建设用地管理》2023-2024学年第二学期期末试卷
- 徐州市九里区2024-2025学年四下数学期末复习检测试题含解析
- 2025届广东省广州市普通高中高三下学期二模物理试卷含答案
- 标展租赁合同协议
- 医院综合考核试题及答案
- 2025年工会五一劳动节活动方案范文
- 中外航海文化知到课后答案智慧树章节测试答案2025年春中国人民解放军海军大连舰艇学院
- 行政复议法-形考作业2-国开(ZJ)-参考资料
- 诊所中药饮片清单
- AOI直通率持续提升报告
- 财综[2001]94号
- 发电机组防腐保温施工方案
- 介入导管室工作总结
评论
0/150
提交评论