《Android手机游戏仙剑Q侠传毕业设计说明书.doc》由会员分享,可在线阅读,更多相关《Android手机游戏仙剑Q侠传毕业设计说明书.doc(50页珍藏版)》请在三一办公上搜索。
1、设计题目:Android手机游戏-仙剑Q侠传 学 院:_ 计算机与信息学院_ _ 专业年级: 软件工程 2008级 Android mobile games-xianjian Q man preachCollege: Computer and Information College Specialty and Grade: Software Engineering, 2008 Number: 081181065 Name: Lin Shuqi Advisor: Lecturer, Lin Song Submitted Time: May 20th, 2012 毕业设计(论文)原创性声明和使用授
2、权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校
3、可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 目 录摘要IAbstractII1 引言11.1 选题背景12 系统分析22.1 可行性分析22.2需求分析22.2.1 系统概述23 系统设计33.1概要设计33.2 数据库设计与实现33.2.1 数据库设计与实现33.3详细设计与实现153.3.1 使用工具153.3.2 客户端开发153.3.3邮箱功能模块153.3.4组队功能模块213.3.5 宠物图鉴功能模块223.3.6 任务模块233.3.7货币兑换模块253.3.8 好友模块274 结束语42参考文
4、献43致谢44摘要 本游戏是一款仿RPG类型手机网游,实现了通过互联网下载客户端后玩家通过客户端注册游戏账号后建立角色进入游戏主界面,对于玩家来说,可以进行查看个人信息、查看宠物信息、与玩家进行邮件交流、进行货币购买销售、进行摆摊或者逛摊出售购买装备物品、进入副本刷怪升级刷装备等功能。GM可以通过系统公告进行游戏最近动态的通知比如即将开放的活动、最近优惠信息等,通过系统邮件对玩家进行奖励发放,系统消息通知。这是一款新颖的手机网游,开发了Android版本,符合当前时代主流,是一款让玩家能在游戏中体验从弱小到强大,从菜鸟到高手的Game。关键词: 仿RPG,手机网游,AndroidAbstrac
5、tThis game is a copy online RPG type mobile phone, realized through the Internet to download client players through the client registered account Numbers game set up Into the game after role main Interface, for a player, can view the personal information, check pets, and information exchange and mai
6、l players for money to buy, or stroll, called sales sell buy items, stand to brush brush equipment upgrade copies of blame etc. Function. GM can through the system dynamic game recently announced notice such as will open soon activities, such as preferential information recently, through the mail sy
7、stem to players for awarding, the system message notice. This is a novel cell phone online, the development of the Android and Iphone two versions, in line with the current era mainstream, is a let players in the Game can experience from weak to strong, rookie to masters from Game.Key words : copy R
8、PG, cell phone online,Android1 引言1.1 选题背景随着3G移动网络应用的推广和Android系统的普及,手机游戏的规模、复杂程度日益增强;其技术手段、设计思想、系统体系结构都发生了深刻的变化。目前,手机游戏正在向图片游戏,特别是基于 3G 网络平台方向发展。 Java 游戏等都是比较常见也比较流行的游戏形式。手机虽然可能不是一个理想的游戏设备,但毕竟人们总是随时随身携带,这样手机游戏很可能成为人们消遣时间的首选。未来的手机游戏在智能手机和 3G 网络的基础上,可以达到更高更炫目的游戏效果。目前个厂商正将显示芯片植入手机提升图形显示性能,使手机在进行多媒体演示和游
9、戏时更够有出色显示效果。2 系统分析2.1 可行性分析可行性研究是为了研究系统在经济、技术、法律等方面是不是可以进行开发,进行可执行性的分析是很重要的。经过研究,我得出了如下几点可行性分析:1)经济可行性:这个项目是公司的项目,开发的主要成本是公司投资,根据策划预算以及上一款游戏的市场效果,该游戏可以获取比较大的收益。2)技术可行性:项目客户端用的的Android开发平台,未使用游戏引擎,使用java语言进行代码开发,通过android控件进行UI的设计,不存在较大的技术问题,都能解决。3)法律可行性:开发这个项目,公司有经过合法的法律流程,不会在社会上引起侵权或其它责任问题,即在法律上也是可
10、行的。2.2需求分析Android平台上的游戏相比应用软件,不需要进行严格的市场细分,不需要针对目标用户量身定制。这是因为游戏玩家的核心需求是统一的,那就是:娱乐与打发时间(乃至更高层面的竞技需求和群体认同需求),这种需求附着于特定的社会发展阶段,不受地域的限制,甚至于能够穿透文化壁垒。因此,绝大多数种类的游戏都具备传染性与普适性,每一个售出的游戏都象一个火种,将会点燃周围潜在玩家的激情,激情的火焰迅速蔓延,最终吞噬整个需求市场,当然前提是开发的游戏是高质量的。此外,几乎每一个Android手机用户都是游戏的需求者,都是潜在的顾客,现今的400多万Android用户不过是冰山一角,随着Andr
11、oid手机市场进一步壮大,游戏的市场容量将具备较大的增长空间,游戏开发者不会愁吃不饱,只会愁胃口不够大。2.2.1 系统概述随着手机技术的不断发展,大屏幕触屏手机已经非常普及,Android手机更是其中的佼佼者。本游戏对用户界面的要求较高,达到人性化:美观大方、便于操作,个性化:游戏界面时尚靓丽、别具一格。本游戏是使用即时通讯协议进行通信的,所以,实时的游戏效果、即时聊天以及在线探测是必须做到用户体验良好的。3 系统设计3.1概要设计邮箱系统邮件列表发送邮件查看邮件删除邮件任务系统队伍系统创建队伍加入队伍离开队伍宠物图鉴货币兑换货币上架货币购买猎神系统好友系统添加好友删除好友给好友发送邮件图
12、3-1 模块图3.2 数据库设计与实现3.2.1 数据库设计与实现(1)邮件表(Mq_mailing表)表31邮件表字段类型说明idint邮件ID。系统滚号Type1smallint邮件类别1=系统邮件2=玩家邮件Type2smallint邮件类型1=为无附件邮件2=为携带附件邮件3=为需要输入金币才可以领取附件的邮件Mail_stateSmallint邮件状态1=玩家未查看邮件2=玩家已查看,未收取邮件。3=玩家已查看邮件,并提取了附件。Send_idint发送人id。对应Mq_user表的id。0为系统发送User_idint收件人id.。对应Mq_user表的id。TimeDatetim
13、e邮件发送时间记录,记录格式:AABBCCDDEE示例:2011年1月1日,10点20分30秒20110101102030themevarchar邮件主题。系统发送的邮件,主题颜色标红messagevarchar邮件文本信息Obj01_idInt邮寄物品01的ID。记录Mq_itemtype表id,下同。Obj02_idInt邮寄物品02的IDObj03_idInt邮寄物品03的IDObj04_idInt邮寄物品04的IDMoneyInt金钱,根据Type2字段判断类型Type2=1或Type2=2,为玩家邮寄金钱Type2=3,为玩家需付款的金钱数量EmoneyInt邮寄代币数量reserv
14、e _moneyInt邮寄储备金数量ExpInt邮寄玩家经验E_expInt邮寄宠物经验Adj_moneyInt邮件所需邮费(根据玩家添加附件的数量决定)(2)队伍列表 表32队伍表字段类型类型GROUPIDsmallint队伍ID(队长用户ID)ACTIONTIMEsmallint战斗剩余时间GROUPNUMint队伍人数限制USERIDint玩家IDLOOKFACEtinyint 玩家头像NAMEVARCAHR玩家名称ROLELVtinyint玩家等级(3)任务表(Mq_quest表、Mq_user_quest表)该表主要记录任务信息,包括领取任务所需前置任务、任务发布NPC、任务交还NP
15、C、任务目标、达成条件、任务奖励、任务说明等。表33任务表字段类型说明idint任务id。编号规则:任务ID编号为8位数。第13位表示任务类型,与type相同。第47位表示任务编号,自00009999由策划规划。typetinyint任务类型。用于对普通任务、剧情任务、师门任务等进行区分,如定时重置、分类显示的根据。100:普通任务。101:主线任务。102:帮派任务。103:职业任务。200:每日任务。namevarchar任务名称。levelsmallint任务等级。注意不同的任务类型,该字段的含义也有所不同。【普通任务】:任务触发条件之一。需玩家等级与该值满足一定关系。根据该关系,奖励会
16、有一些加成或折扣,详见下文说明。【主线任务】:任务触发条件。需玩家等级与该值满足一定关系。系统会默认帮玩家接收任务。need_professiontinyint任务职业需求。任务触发条件之一。需玩家职业与该字段相符。0表示所有职业均可,14对应4个职业,要求角色Mq_user中profession与该字段相符才能领取任务。need_sextinyint任务性别需求任务触发条件之一。需角色Mq_user中sex与该字段相符。0为男女均可,1为男性专有,2为女性专有。need_timeint任务时间限制。自领取任务开始计算,超过该字段规定的时间后任务失败。记录格式由程序制定,可与策划沟通。need
17、_quest_01int前置任务01。填写任务id。任务触发条件之一。检测该任务id是否在Mq_user_quest表中对应角色下存在。表示该任务需要玩家完成某个任务后才能领取。need_quest共4个字段,填写多个时表示任务需要完成这些任务后才能领取。need_quest_02int前置任务02。need_quest_03int前置任务03。need_quest_04int前置任务04。begin_npcint任务发布npc。对应Mq_npc表的id。缺省默认为0,当为0时,则任务无发布NPC。begin_dialogvarchar任务起始对白。示例:玩家名,去帮我消灭10个骷髅兵!注:所
18、有varchar类文字均需支持类似html的标签,用于标示文字的颜色、粗细、自动寻路链接等;另需支持保留字符,用于解析玩家名称、性别、种族、职业、转世信息等;还需支持回车符等编辑标记。任务起始时显示的任务目标。示例:任务目标:张三要求你消灭10个骷髅兵。注:小提示等信息一并写入该段。begin_messagevarchar任务起始时显示的任务目标。示例:任务目标:张三要求你消灭10个骷髅兵。注:小提示等信息一并写入该段。doing_messagevarchar任务进行中的说明。示例:任务目标:张三要求你消灭10个骷髅兵。condition_01int完成任务需要达成的条件类型,如杀怪、寻物、送
19、信等等,每种类型需达成的内容和交还任务的细节均有所不同,具体条件类型如下:1=杀怪2=杀怪掉落物品3=送货5=物品6=捕捉宠物condition01_ dataint 当condition_01=1时,对应怪物id。对应Mq_monstertype表id。 当condition_01=2时,对应物品id。对应Mq_itemtype表id。 当condition_01=3时,对应物品id。对应Mq_itemtype表id。该类物品由任务发布NPC给予,由任务交还NPC回收。condition01_ parameterint 当condition_01=1时,对应所需击杀数量。 当conditio
20、n_01=2时,对应所需收集数量。 当condition_01=3时,对应物品数量。一般是1。condition01_ option_01int 当condition_01=1时,无作用。 当condition_01=2时,对应掉落该物品的怪物id。对应Mq_monstertype表id。 当condition_01=3时,无作用。condition01_ option_02int 当condition_01=1时,无作用。 当condition_01=2时,对应掉落几率。记录万分数。 当condition_01=3时,无作用。condition_02int完成任务需要达成的条件。同condi
21、tion_01。condition02_ data同condition_01_ data。condition02_ parameter同condition01_ parameter。condition02_ option_01同condition01_ option_01。condition02_ option_02同condition01_ option_02。condition_03int完成任务需要达成的条件。同condition_01。condition03_ data同condition_01_ data。condition03_ parameter同condition01_ par
22、ameter。condition03_ option_01同condition01_ option_01。condition03_ option_02同condition01_ option_02。condition_04int完成任务需要达成的条件。同condition_01。condition04_ data同condition_01_ data。condition04_ parameter同condition01_ parameter。condition04_ option_01同condition01_ option_01。condition04_ option_02同conditio
23、n01_ option_02。【注】condition_0104为任务达成的条件,需满足所有条件,任务才算完成。over_npcint任务交还npc。对应Mq_npc表中id。doing_dialogvarchar任务进行中对白。(即任务接了,但是未完成。)示例:还没搞定?快去快回!over_dialogvarchar任务完成对白。示例:干得好!这是给你的奖励,拿去吧!bonus_moneyint完成任务奖励金钱。对应Mq_user表money。bonus_expint完成任务奖励经验值。对应Mq_user表exp。Must_item01int完成任务必奖励物品。对应Mq_itemtype表i
24、d。Must_item02int完成任务必奖励物品。对应Mq_itemtype表id。Must_item03int完成任务必奖励物品。对应Mq_itemtype表id。Must_item04int完成任务必奖励物品。对应Mq_itemtype表id。choose_item_01int要求玩家从choose_item_0104中选择一个物品作为奖励,需要配置的话,原则上至少配置2个(当然只配置1个也不会出错就是了)。choose_item_02int完成任务单选物品。choose_item_03int完成任务单选物品。choose_item_04int完成任务单选物品。表34任务完成进度表该表记
25、录所有角色已经领取的任务和已经完成的任务。字段类型说明idint系统管理ID。user_idint角色id。指向Mq_user表id。quest_idint对应该角色,已接到/已完成的任务id。对应Mq_quest的id。flagint表示任务完成情况。0已接未完成1已完成2失败。timeint角色领取该任务的时刻,用于判断时限任务是否超时。parameter_01int该任务的第1个条件中,角色当前达成的参数。参数含义参见下方的对照表。parameter_02int该任务的第2个条件中,角色当前达成的参数。parameter_03int该任务的第3个条件中,角色当前达成的参数。paramet
26、er_04int该任务的第4个条件中,角色当前达成的参数。(4)宠物图鉴表(Mq_user_handbook)表35宠物图鉴表字段类型说明idInt系统编号User_idint玩家id,对应Mq_user表的idtypesmallint类型。1=怪物2=宠物Sortsmallint信息状态。1=玩家未查看过该信息2=玩家已查看过该信息type_idintType=1。对应mq_monstertype表idType=2,对应Mq_EudTemplate 表id(5)猎神系统表(Mq_spirit_config)表36猎神系统表字段类型说明Idint系统编号Sort_1Int对应mq_spirit
27、_config表Type字段Rang_1Int获得sort=1的几率,概率范围最大值Sort_2Int对应mq_spirit_config表Type字段Rang_2Int获得sort=2的几率,概率范围最大值Sort_3Int对应mq_spirit_config表Type字段Rang_3Int获得sort=3的几率,概率范围最大值Sort_4Int对应mq_spirit_config表Type字段Rang_4Int获得sort=4的几率,概率范围最大值Sort_5Int对应mq_spirit_config表Type字段Rang_5Int获得sort=5的几率,概率范围最大值Sort_6Int对
28、应mq_spirit_config表Type字段Rang_6Int获得sort=6的几率,概率范围最大值Sort_7Int对应mq_spirit_config表Type字段Success_7Int获得sort=7的几率,配置方式:1000=100%。Rang_7Int获得sort=7的几率,概率范围最大值字段类型说明Idint系统编号Spirit_idInt对应mq_spiirit表TypeInt类型Type=1。劣质元神物品Type=2。劣质普通元神物品Type=3。劣质精良元神物品Type=4。劣质优质元神物品Type=5。劣质完美元神物品Type=6。再次抽取Type=7。空值Value
29、_1IntType=6。对应再次收取次数。1表示再一次抽取机会Type=7。填0Value_2 IntType=15。物品数量Type=6。对应图片lookfaceType=7。对应图片lookface其他情况填0(6)货币兑换表(Mq_consign表)表37 货币兑换表字段类型说明IdInt系统编号User_idInt记录寄售代币玩家idTypeSmallint寄售类型Type=1。代币Type=2。游戏币Npc_idInt对应寄售npc的id。已售出时,填0moneyInt寄售的物品当Type=1时。Money=代币当Type=2时。Money游戏币SellmoneyInt货币价格。当T
30、ype=1时。Sellmoney=游戏币当Type=2时。Sellmoney=代币timeDatatime记录发布/收购货币的时间(7)好友表(Mq_friend表)好友系统需要一张好友表来记录数据。表38好友表字段名数据类型字段含义idint每一条记录值的序列号;useridint玩家ID,指向user表中id;Mq_Friendint朋友的对应于user里的id字段Mq_Friendnamevarchar朋友的名字;指向user表的id;Mq_Friendlevtinyint朋友的等级,指向user表的level;relationtinyint朋友之间的关系;0:好友 1:黑名单Good_
31、numint记录好友之间的好友度;缺省默认为1;用接口实现与数据库的数据链接:public Action2301(short PageSize,short PageIndex,short Type)this.PageSize=PageSize;this.PageIndex=PageIndex;this.Type=Type;public String buildUrl()path=ActionID=2301+&SessionID=+MyQsuiko.getInstance().getMyUser().getSessionID()+&PageSize=+PageSize+&PageIndex=+P
32、ageIndex+&Type=+Type;Log.i(path,path=+HttpRun.mainIp+path+getSign();return path+getSign();protected void internParseResult(byte arg0)/TODO Auto-generated method stubmailInfo = new MailInfo();mailInfo.setPageSize(toInt();/每页条数mailInfo.setPageNum(toInt();/一共多少页mailInfo.setPageIndex(toInt();/当前第几页 shor
33、t RowCount = toShort(); mailInfo.setRowCount(RowCount);/ System.out.println(RowCount=+RowCount);MailList mailList = new MailListRowCount;/循环开始for(short i=0;i 0) setKey(HoldData);mailInfo.setMaiList(mailList);public MailInfo getMailInfo()return mailInfo;调用接口来取得数据库数据:3.3详细设计与实现3.3.1 使用工具本次开发使用的工具有ecli
34、pse、java等等,大部分都大家常用的工具。具体的工具及版本如下表所示:3.3.2 客户端开发我参与开发的功能主要有:登陆模块,邮箱系统模块,组队模块,宠物图鉴模块,任务模块,帮助模块,好友系统模块,货币兑换系统模块、猎神系统模块。3.3.3邮箱功能模块A.邮件发送玩家通过点击主界面“邮箱”按钮进入。选择“撰写邮件”表38No名称说明1收信人可输入文本框,输入玩家信息,点击“选择好友”打开好友列表添加好友。2主题可输入文本框,输入信件主题。主题最多为10个汉字3邮件信息点击文本框,输入邮件内容。具体文字信息量暂定5邮费信息提示邮费信息根据玩家添加的物品数量,根据玩家操作实时更新6附件选择“附
35、件”框,弹出玩家背包栏,选择物品。特殊物品无法邮寄,详见Q将物品。7付款取信/发送金币玩家输入金币状态。切换选项后,金币栏清空l 选项为“发送金币”,玩家将金币发送给收件方l 选项为“付款取信”,收件方需要支付金币才可以领取邮件内的附件8金币框选定弹出数字输入框。每次选定都会将之前输入的信息清空9发送点击按钮后发送邮件,平常为灰态。检测邮件满足以下条件,按钮才亮起l 收件不为空l 主题框不为空B.邮件接收1. 标题信息2. 邮件信息。系统邮件统一在“系统信件”栏目内显示。a) 点击主题“无标题222”打开邮件。b) 点击“选择”,选项打钩,邮件被标记。c) 已经查看过的邮件,“主题”颜色为灰色
36、。d) 携带有附件的邮件,“Ragi”左边显示图标。3. 选项信息表39信息说明“页码”显示当前页面数目,不可翻页时按钮变灰全选选择当前页面所有邮件。全部选择邮件后,按钮为灰态删除将选项为勾的邮件删除。无选择邮件时,按钮为灰态收本页附件将当前界面邮件内所包含的邮件。含有付款的邮件将不会自动收取(按钮不为灰态)。当前界面邮件都不含有附件时,按钮为灰态通过实现适配器Adapter来实现列表的实现public class MailAdapter extends BaseAdapterLayoutInflater layoutInflater;class ViewHolderTextView ml1t
37、v1,ml1tv2,ml1tv3;Button ml1btn1,ml1btn2;LinearLayout lLayout;public MailAdapter(MailListActivity v)super();layoutInflater = LayoutInflater.from(v);public void setSelectItem(int selectItem) this.selectItem = selectItem; private int selectItem=-1;Overridepublic int getCount() if(maillist!=null)return
38、maillist.length;elsereturn 0;Overridepublic Object getItem(int position) / TODO Auto-generated method stubreturn position;Overridepublic long getItemId(int position) / TODO Auto-generated method stubreturn position;Overridepublic View getView(int position, View convertView, ViewGroup parent) ViewHol
39、der viewHolder;if(convertView = null)convertView = layoutInflater.inflate(R.layout.mail_list1, null);viewHolder = new ViewHolder();viewHolder.ml1tv1 = (TextView) convertView.findViewById(R.id.ml1tv1);viewHolder.ml1tv2 = (TextView) convertView.findViewById(R.id.ml1tv2);viewHolder.ml1tv3 = (TextView)
40、convertView.findViewById(R.id.ml1tv3);viewHolder.ml1btn1 = (Button) convertView.findViewById(R.id.ml1btn1);viewHolder.ml1btn2 = (Button) convertView.findViewById(R.id.ml1btn2);viewHolder.lLayout = (LinearLayout) convertView.findViewById(R.id.lLayout);convertView.setTag(viewHolder);elseviewHolder = (ViewHolder) con