多人联机对战游戏设计与实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多人联机对战游戏设计与实现

多人联机对战游戏设计与实现   摘要:在程序设计课程中,学生普遍认为多人联机对战游戏制作难度大,一般选择休闲小游戏作为综合实践项目。制作一款包含客户端、服务端的多人联机对战游戏,可以综合应用各种程序设计技术、网络编程技术以及设计模式,提高学生专业实践能力。   关键词:多人联机; 游戏; 网络编程; 设计模式; 客户端; 服务端   中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)34-0081-03   Abstract: In the program design course, the students are generally believed that Multiplayer Online Battle Game is difficult to develop, usually choose little recreational game as comprehensive practical project. Make a Multiplayer Online Battle Game including client and server, can practice various technology, such as programming technology, network technology and design patterns, to improve students professional practical ability.   Key words: Multiplayer Online; Game; network programming; design patterns; client; server   1 概述   腾讯运营的多人对战游戏,取得了巨大的市场成功。这款游戏是一个典型的C/S结构的网络游戏,包含客户端部分和服务端部分。在教学工作中,把这样的题目作为综合实践项目,多数学生都觉得制作难度大,一般会选择休闲小游戏。   即使学生学习了程序设计、socket网络编程、设计模式等课程,学生很难综合应用各门专业课程,制作一款多个用户联机、对战竞技、包含服务端、客户端的对战游戏。   该游戏的开发,综合使用了MVC架构、多线程、socket网络编程和消息处理、设计模式等技术,程序耦合?^低,架构良好,实现了多人联机对战的主要流程和功能。   2 游戏结构   该游戏使用MVC架构、JAVA语言制作,不依赖第三方引擎,适合课程教学。游戏主要功能:   服务端:在一台计算机上运行服务端程序。服务端负责接收消息,转发消息,让各个客户端的事件同步,从而画面同步。   客户端:开启8台电脑,运行客户端。每人控制一名英雄角色,点击鼠标移动,按Q、W键使用攻击技能、补血技能。   胜负规则:双方阵营各4人,每方有一个防御塔,摧毁对方塔则获胜。实际部署效果如图1、图2所示。   游戏作为一种软件,完全符合MVC(Model View Control)架构。M负责数据存储,图片资源素材;V负责视图显示、图片绘制;C负责程序控制,刷新各项数据。良好的程序架构,就是这三部分分工协作。   3 客户端功能和类结构   3.1 总体结构   游戏效果如图3所示:   客户端总体程序、事件关系如图4所示:   程序主要包括以下类:   红方列表HeroArray类:存放红方英雄和塔。   蓝方列表EnemyArray类:存放蓝方英雄和塔。   技能类SkillArray类,定义两个对象,存放双方阵营发出的技能,包括攻击技能和补血技能。   程序的底层组件,包括图片类、移动类、动画类、技能类。将单个组件封装,能存放、管理多个对象的类,包括图片数组类,技能数组类,动画数组类。   3.2 可移动的图片   可移动的图片(ItemPathBase类),由两个类组合而成,图片类ItemBase和移动类Path,类图如图5所示。   图片类ItemBase:包含一个玩家单位的基本数据和素材图片(java的Image类)。   移动类Path:包含一次移动的基本数据,例如起始/结束坐标、方向向量等。由父类Path保存公共的数据,Path的子类实现不同的移动方式:A点到B点, A点朝B点方向移动。   一个英雄角色,一个发出的子弹,一个塔,都是使用ItemPathBase类。   3.3 动画   动画由多幅图片组成,依次绘制到屏幕上。   单个动画的类AniBm:   属性:Imgae对象,对应一个图片文件;动画状态,准备/播放/结束。   方法:绘制图片,当前帧加1,设置输出坐标。   一次补血技能的动画,就是使用An

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档