arpg设计思想-开发必看

arpg设计思想-开发必看

ID:21952709

大小:222.46 KB

页数:8页

时间:2018-10-25

arpg设计思想-开发必看_第1页
arpg设计思想-开发必看_第2页
arpg设计思想-开发必看_第3页
arpg设计思想-开发必看_第4页
arpg设计思想-开发必看_第5页
资源描述:

《arpg设计思想-开发必看》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、整体结构GUl.swf:各个子系统的界®库。各个子系统间相互独立,对彼此不可见,通过通知进行交互.也可以每个子系统独立成一个单独的swfoUlCommon.swf:扩展组件库、Avatar、URL管理、GUI管理、一些实用类Model.swf:各个子系统的模型层部分的库。每个子系统的内容有:与服务器交互的服务类、数据信息及数据管理器、配置管理器。各个子系统II享,通过单例向其他子系统公开数据查询的接□.不知道GUI的存在,数据过通知分发器通知GUI更新显示。FrameWorlcswfsUlComponents.swf:Aswing组件库、f

2、l包组件厍或者其他组件库位图动画库键盘管理器心跳器位图动画资源管理器通知分发器加载器图标资源管理器FlyMVP框架核心网络模块对象池皮肤管理器实用类图01.心跳机制Biglleart心跳器,是游戏中统一的动力來源,提供游戏的动力驱动。心跳器会以一定的时间间隔跳动,感兴趣的监听者可以向心跳器注册。心跳器驱动的育:每个游戏循环内场景的更新函数update(deltaTime)、定吋对引用计数为0的动画资源、图标资源等做垃圾回收gc、活动以及领取奖励的倒计时等、向服务器发送心跳包。W为游戏的动力都是來源于此心跳器,可以很好的解决flash插件的睡

3、眠模式问题。即使CJ身丧失动力,也可以由外部容器定时调用心跳函数,來保证正常的游戏循环得以进行。很多游戏都提供了对timer进行管理的功能,但职责更多的是创建timer,并按不同时间间隔存放timer。而不能像心跳器这样避免很多timer实例的存在。2.资源管理加载器BoostLoader是单例类、全局唯一,游戏屮所冇的资源的加载都由加载器统一管理,Loader、URLLoader不再对用广可见(和php交互时用到的URLLoader,JS调用,封装的有Httplnterface类)。加载器内部维护不同优先级的待加载队列,可以设置并发加载的

4、最大数量,当前资源加载完成,或者正在加载的资源数量小于最大并发数量时,会从待加载队列中找岀优先级最高的进行加载。当用户请求一个资源的时候,会首先查看其请求的资源足否已经在加载或请求队列屮,如果已经存在,只需添加请求者信息到资源的请求队列中。资源加载完成后,通知所有的请求者进行处理。为了明确职责,加载器只负责资源的加载,不负责存储,也不进行另外的解码等操作。已经下载完成的资源,交由其请求者处理后,加载器不再保存苏引用。为了缓存游戏的地图区块图片、位图动両、图标、SWF皮肤资源,提供专门负责地图区块图片管理的MapDefManager,专门负责

5、动岡资源管理的管理器AnimationDefManager专门负责图标资源管理的ImageDefManager、专门负责皮肤资源管理的SkinManager。有了这些资源管理器后,上层用户也不需要和加载器直接打交道,而是通过这些管理器请求资源。具体的一个动両资源AnimationDef、图称资源ImageDef都保存有引用其的BmpAnimation、image炎的引用计数,会定时的清理计数为0的资源。划分出不同类型的资源管理器,而不是一个统一的缓存管理器的目的也是为了明确职责,尽量使每个类只做一件事情,满足单一责任的原则。3.网络网络模块

6、提供客户端与服务器问进行socket交互的功能。基本上每个游戏都会和服务器有两个连接以上的交互。一种就是先与账号服务器交互,账号验证后在整个游戏循环内一直保持与网关的连接交互。另外一种就是为了减轻网关的压力,在账号服务器验证过后,持有其发送过来的ticket,去直接分别连接场景服务器、聊天服务器、全局服务器,而不统一通过网关转发。为了适用这些模型,提供一个ConnectionManager管理与服务器的各个连接Connection,每个Connection以ip+port作为key。每个Connection收到的数据统一交由Dispatch

7、er类进行分发。对某个以cmd标识的消息感兴趣的用户,可以向Dispather进行注册接收。如果想避免手动写消息结构的序列化以及反序列化的代码,可以利用类的反射机制,编写一个自动序列化器自动对消息结构进行序列化和反序列化的操作。例如使用技能的消息:publicclassUseSkillMsg{publicvara_playerld:uint32;publicvarb_skill:int32;}_publicclassUseSkillMsg{[Msg(type=uint32?order=0)]publicvarplayerld:int;[Ms

8、g(type=int32,order=l)]publicvarskilkint;}图3.14.场景4.1分层结构EffectLayer:技能特放、场景特放。。。DynamicLa

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。