ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:314.96KB ,
资源ID:457070      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/457070.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于unity的回合制网游战斗系统的研究与实现.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于unity的回合制网游战斗系统的研究与实现.docx

1、基于unity的回合制网游战斗系统的研究与实现摘要本文主要阐述网络回合制战斗系统的实现,包括回合制战斗系统的整个流程(战斗开始、玩家下达战斗指令、战斗动画、战斗结束),和网络回合制战斗系统常 见的主要功能(攻击、使用技能、使用物品)的实现,并且在游戏项目PKer中进 行实践和测试。在开发环境方面,服务器采用国IOCP高性能开源框架“HP-Socket” (Windows平台),并且连接到Mysql数据库,客户端采用近年比较火热的强大跨平 台引擎Unity3D (2D, C#)并且使用Sqlite作为嵌入式数据库。除此以外,本文还 对战斗系统实现所涉及到的相关技术如Unity引擎的协同程序、单例

2、设计模式和分包 算法进行简要介绍。关键词 回合制战斗系统,网络游戏,Unity3D,协同程序,游戏编程ABSTRACT This article mainly expounds the implementation of netw ork turn-based combat system, including the whole process of turn-bas ed combat system (battle begins, the players fighting instructions, comb at animation, battle ends), and the main

3、function of common (attack, u sing skills, using items) implementation, and in the game nPKern in pra ctice and test of the project. In the aspect of development environment, C+ IOCP server with Windows platform and connect to the Mysql dat abase, the client uses Unity3D (2D, C#) and uses Sqlite as

4、an embedde d database In addition to this, this article also involved to combat syst em related technologies such as the Unity engine coroutines, singleton design pattern and the subcontract algorithm are briefly introduced.KEYWORDS Turn-based combat system, online game, Unity3D, Coro utine, Singlet

5、on design pattern前言 1第1章绪论 21.1回合制游戏简介 21.1.1广义上的回合制游戏 21.1.2狭义上的回合制游戏 21.2回合制战斗系统简介 21.3实践项目PKer简介 2第2章开发环境和部分涉及技术简介 42.1开发环境简介 42.2Unity协同程序 42.2.1Unity协同程序简介 42.2.2Unity协同程序的运用 42.3单例设计模式 52.3.1单例设计模式 52.3.2单例设计模式的运用 62.3.3单例设计模式在Unity中的运用 72.4分包算法 72.4.1分包的原因 72.4.2环形缓冲区(Circular Euffe 72.4.3分包算

6、法流程图 9第3章 战斗动画实现方案的研究与对比 113.1研究背景 113.2实现方案一:有限状态机 113.3实现方案二:协同程序(Coroutine) 123.4方案抉择结论 13第4章回合制网游战斗系统设计 144.1回合制网游战斗系统设计 144.2回合制网游战斗系统服务器实现思路 154.3回合制网游战斗系统客户端实现思路 154.4战斗系统框架结构(以实践项目PKer为例) 16第5章回合制战斗系统实现 185.1战斗系统相关消息结构体的定义 185.2服务器战斗系统的实现 205.2.1服务器战斗系统相关结构体 205.2.2初始化一个战局 235.2.3接收客户端的战斗指令消

7、息 235.2.4处理战斗指令并发送动画消息 245.2.5 说明 275.3客户端战斗系统的实现 275.3.1客户端战斗系统功能模块 285.3.2客户端战斗系统相关数据类型 285.3.3进入战斗后初始化战斗角色 295.3.4下达战斗指令并发送战斗指令消息 295.3.5接收战斗动画消息 305.3.6收到战斗动画播放消息并播放战斗动画 305.3.7战斗动画实现细述 35第6章项目测试 396.1进入战斗测试 396.2普通攻击功能测试 396.3使用技能功能测试 406.4使用物品功能测试 41结论 43参考文献 44致 45随着网络的普及与迅速发展,网络游戏已经成为电子游戏中的主

8、流。网络游戏的 战斗系统主要可分为即时制和回合制两种模式。即时制战斗系统侧重于刺激、反应、 操作性,战斗节妻快C而回合制战斗系统侧重于休闲、战略、配合,战斗节奏慢。早 期的电子游戏由于设备硬件条件有限,大多采用回合制战斗系统。随着科技的发展和设备硬件的提升,如今回合制游戏的数量比例有所下降,但回 合制游戏在国游戏市场依旧占据着想当大的份额,仍有大量玩家热衷这种战斗模式, 几款众所周知的国产单机游戏如轩辕剑系列、仙剑奇侠传系列、古剑奇谭 系列以及国在线人数最多的MMORPG梦幻西游均是采用回合制战斗系统的游戏。本人也是热衷干回合制战斗系统的玩家之一,可纵观近年来国回合制游戏的发展, 国回合制游戏

9、一直止步不前,轩辕剑系列、仙剑奇侠传系列、古剑奇谭 销量下降,MMORPG梦幻西游也有降温迹象,甚至国大多回合制网游只是复制 在梦幻西游或“换皮”,缺少创新和突破。本人希望在研究和实现回合制战斗系 统的基础上,能够找到突破和创新点。同时在游戏编程方面,即时制逻辑较为简单明 了清晰,而回合制则比较繁琐复杂,而且在Unity引擎上实现回合制战斗系统的相关 资料较少。综上原因,本人撰写本文,希望能对志同道合者有所启发,同时也寻求学 术交流。项目将在 2017 年 6 月开源,开源地址 https: / /pan.baidu./share/home?uk =1017424337By江正觊 2016.6

10、第1章绪论1.1回合制游戏简介1.1.1广义上的回合制游戏凡“我方与敌方在单个回合轮流行动,只有轮到我方(自己)的回合或者是新的 回合开始时,才可进行行动”的游戏,都可归类为广义上的回合制游戏,而且绝大大 多数情况下,单个回合敌我双方行动次数相同。从广义上来说,回合制游戏围非常广, 棋牌、卡牌、战棋策略、回合制战斗模式都能归为此类。1.1.2狭义上的回合制游戏狭义上的回合制游戏,是从广义回合制游戏中细分,特指回合制战斗模式的游戏, 与即时制战斗模式相对。1.2回合制战斗系统简介在回合制战斗模式下,每个回合开始时,敌我双方各自为双方战斗角色下达战斗 指令,待双方所有角色下达完战斗指令或超过时限(

11、回合制网络游戏均会设置下达战 斗指令的时间限制)后双方所有角色开始行动,一般根据角色自身“速度(敏捷)” 的属性数值轮流行动,期间若果某一方符合战败条件(某方全体阵亡或全体人物阵亡) 则战斗结束,如所有角色行动完后敌我双方均没符合战败条件,则进入下回合,如此 循环。1.3实践项目PKer简介PKer是一个以回合制竞技和社交为卖点的PC和移动端跨平台网络游戏,是 游戏与社交APP的融合体。游戏主要玩法是玩家与玩家之间的回合制战斗PKo通过移动设备GPS定位功能(PC端无法使用),能够快速搜索在你身边的游戏 房间和玩家,与其开展战斗。游戏提供一定数量的基础装备和宠物让玩家任意领取,故玩家可以随时更

12、换装备 和宠物,新玩家也能以此为基础投入到战斗中。更强的装备和稀有的宠物通过合成、 付费租用等渠道获得C角色的属性和职业也可以随时更改,以便随时改变战术和改变 在队伍里中的定位。第2章开发环境和部分涉及技术简介2.1开发环境简介本文实践项目的服务器采用国IOCP开源框架HP-Socket”,并且连接到My sql数据库,客户端采用近年比较火热的强大跨平台引擎Unity3D (2D, C#)并且 使用Sqlite作为嵌入式数据库。2.2Unity协同程序2.2.1Unity协同程序简介协同程序(Coroutine),通常简称“协程”,顾名思义,是一段协助的程序(方 法),很多人以为它是另开一个线

13、程执行一段程序,其不然,实际上它是从主线程每 帧或每隔一定时间调用的程序。当协程创建后,主线程中创建协程的语句后面的代码 块会“挂起”,直到协同程序结束后,才会继续执行创建协程语句后面的代码。当协 程中的代码执行完或者使用yield break语句时,协程才会结束,并且返回到主线程 中的创建该协程的语句的位置,继续执行后面的代码。协程中使用yield return帧 数/new WaitForSeconds(秒数)语句可以实现隔多少帧或多少秒后再执行后续代 码。另外协程可以嵌套协程,利用协程的特点和嵌套,可以实现很多复杂和有趣的功 能,十分强大。2.2.2Unity协同程序的运用协程广泛地运用

14、在计时、延迟、控制物体运动、等待物体状态的改变、有顺序地 让物体执行一系列动作等方面上。根据协程的特点,协程中可以使用“循环+条件判断+yield return帧数/new WaitForSeconds(秒数)”实现每隔多少帧或者多少秒后再次执行条件判断语句,当 判断语句满足跳出循环,从而让协程代码执行完结束,回到主线程继续执行后续代码, 利用此功能,可以很方便地实现某物体达到某状态后再执行程序。示例代码:主线程代码StartCoroutine(actor.Move(getAttackPosition(nTargetIndex);Int i=0;协同程序Move方法public IEnumer

15、ator Move(Vector3 destPos)while (transform.localPosition != destPos)transform. localPosition = V ector 3. MoveT owards (transform. loc alPos辻ion, destPos, GlobalData.BATTLE_SPRITE_MOVE_SPEED * Ti me.deltaTime);yield return 0;上述代码中,主线程Startcoroutine方法创建一个协程Move,待协程Move 执行完成返回后,主线程才执行匸0语句。可是协程Move的返回条件有点特殊,yi eld return 0语句表示协程运行到此处挂起,等下一帧再从本语句继续运行,由于y ield return 0在while循环,所以不管yield return 0多少次,都依然在while循 环,而且while循环每一帧循环一次。直到while不满足循环条件(即transform.l ocalPosition = destPos),则协程能够完成使命执行完成并返回。可以猜测到, 所控制的物体可能通过Update方法或者其他方法每帧在移动,直到移动到目标地点, 才执行主线程后面的代码。2.3单

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1