Zjh游戏(五)模块类的实现
完善网络消息的处理中心
作用:分发到各自对应的模块去处理
在GameServer中创建一个文件夹Logo
创建一个所有的模块类继承的接口,IHandler,一个断开方法,一个接收消息的方法
创建操作码对应的模块类
在网络消息的处理中心分发到每个模块类中
Server项目图
IHandler的实现
namespace GameServer.Logic
{/// <summary>///每个模块处理的接口/// </summary>public interface IHandler{void DisConnected(ClientPeer clientPeer);void Receive(ClientPeer client,int subCode,object value);}
}
四个模块类的实现
//账号模块
namespace GameServer.Logic
{/// <summary>/// 账号模块的处理/// </summary>public class AccountHandler : IHandler{public void DisConnected(ClientPeer clientPeer){}public void Receive(ClientPeer client, int subCode, object value){}}
}//匹配模块
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MyServer;namespace GameServer.Logic
{/// <summary>/// 匹配模块的处理/// </summary>public class MatchHandler : IHandler{public void DisConnected(ClientPeer clientPeer){}public void Receive(ClientPeer client, int subCode, object value){}}
}//聊天模块
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MyServer;namespace GameServer.Logic
{/// <summary>/// 聊天模块的处理/// </summary>public class ChantHandler : IHandler{public void DisConnected(ClientPeer clientPeer){}public void Receive(ClientPeer client, int subCode, object value){}}
}//战斗模块
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MyServer;namespace GameServer.Logic
{/// <summary>/// 战斗模块的处理/// </summary>public class FightHandler : IHandler{public void DisConnected(ClientPeer clientPeer){}public void Receive(ClientPeer client, int subCode, object value){}}
}
完善网络消息处理中心,分发消息到各自对应的模块
sing GameServer.Logic;
using MyServer;
using Protocol.Code;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace GameServer
{/// <summary>/// 消息处理中心,分发到对应的模块类/// </summary>public class NetMessageCenter : IApplication{private AccountHandler accountHandler = new AccountHandler();private ChantHandler chantHandler = new ChantHandler();private MatchHandler matchHandler = new MatchHandler();private FightHandler fightHandler = new FightHandler();/// <summary>/// 断开连接,分发到各个对应的模块进行处理/// </summary>/// <param name="client"></param>public void Disconnected(ClientPeer client){fightHandler.DisConnected(client);matchHandler.DisConnected(client);chantHandler.DisConnected(client);accountHandler.DisConnected(client);}/// <summary>/// 接收消息,分发到各自对应的模块进行处理/// </summary>/// <param name="client">客户端连接对象</param>/// <param name="msg">网络消息类</param>public void Receive(ClientPeer client, NetMsg msg){switch (msg.opCode){case OpCode.Account:accountHandler.Receive(client,msg.subCode,msg.value);break;case OpCode.Chat:chantHandler.Receive(client, msg.subCode, msg.value);break;case OpCode.Match:matchHandler.Receive(client, msg.subCode, msg.value);break;case OpCode.Fight:fightHandler.Receive(client, msg.subCode, msg.value);break;}}}
}
有需要学习视频的欢迎关注微信公众号
Zjh游戏(五)模块类的实现相关推荐
- Java第五课. 类对象
Java第五课. 类&对象 回顾 1. 冒泡:概念,实现:2个for循环分别起的作用 2. 二维数组可以理解成表格:有行有列,行当成一维数组,列当成一维数组中的元素,行有下标(几个一维数组), ...
- 列表怎么有限的初始化为零_《零基础学习Android开发》第五课 类与面向对象编程1-1...
视频:<零基础学习Android开发>第五课 类与面向对象编程1-1 类的定义.成员变量.构造方法.成员方法 一.从数据与逻辑相互关系审视代码 通过前面的课程,我们不断接触Java语言的知 ...
- 求python一个类与对象的代码_Python基础系列(五)类和对象,让你更懂你的python代码...
首先,非常感谢各位打开本博文,本博文是Python入门基础系列文章之一,Python目前是非常火的编程工具,其实作为编程不在只是程序员的专利,每一个人在日常的工作中.学习中都会或多或少的要用到一些工具 ...
- js写的一个html游戏向导模块
依旧是最近的一个游戏项目,其中的一个需求是要设计一个游戏向导模块,第一次登陆后用箭头,对话框,音频介绍游戏界面上的各个功能.因为介绍的步数较多,就不能纯粹写一些杂乱的代码去触发事件.我的基本思想是,用 ...
- 首份小程序广告投放价值榜单发布:游戏、工具类小程序占主导地位
2018年3月小程序广告正式开放内测,所有类目小程序均可进行广告投放.随后众多品牌小程序纷纷开放小程序广告,近日第三方小程序开发工具即速应用和 精硕科技集团 赋能智慧商业的数据智能技术提供商nEqua ...
- Unity (游戏UI模块的封装)
Unity (游戏UI模块的封装) 前言 之前介绍过Unity声音模块的封装,这次我将为大家继续带来Unity的UI模块的封装,当然在做一些demo的时候,我们常常不会花费太多的时间在这上面,我们都会 ...
- 格斗类游戏和休闲类游戏不同
前阵子我开发了Match3D, 一个可以把三维动画输出成为swf的工具, 而且实现了swf渲染的实时三维角色动画, 这可以说是我真正推出的第一个flash第三方软件, 其实这以前, 我曾经开发过几个其 ...
- PyTorch模块类
文章目录 PyTorch模块类 基于模块类的简单线性回归类 线性回归类的实例化和方法调用 1.使用name_parameters方法和parameters方法获取模型的参数 2.使用train方法和e ...
- boost::test模块类属性工具的单元测试
boost::test模块类属性工具的单元测试 实现功能 C++实现代码 实现功能 boost::test模块类属性工具的单元测试 C++实现代码 #define BOOST_TEST_MODULE ...
最新文章
- 贝叶斯网络之父Judea Pearl力荐、LeCun点赞,这篇长论文全面解读机器学习中的因果关系...
- 《数据分析实战 基于EXCEL和SPSS系列工具的实践》一第2章 数据分析的理论、工具、模型...
- 胆固醇竟是新冠最隐蔽同伙!协助病毒入侵细胞,普林斯顿、哈佛医学院首次观察到全过程...
- C语言经典例61-杨辉三角
- php注册树模式,php基础设计模式大全(注册树模式、工厂模式、单列模式)
- python3 重新学习
- .php y=mp4,PHP输出MP4视频流函数
- 论文浅尝 | 面向自动问题生成的跨语言训练
- MFC小笔记:上下控件
- ToString函数用法
- IBM MQ - 连接远程队列管理器报AMQ4036错误
- final finalize finally比较
- 独立树Graph Coloringhttp://poj.org/problem?id=1419最大团问题
- 【Android游戏开发详细过程2】Android平台飞机大战游戏APP设计与实现
- SpringBoot实现本地、网络文件下载、zip压缩包批量下载
- 推荐一个美中不失优雅的博客网主页(素材参考---麋鹿鲁哟)
- Oracle PeopleSoft 应用安全加固
- 异常解决——Tomcat启动异常:Cannot assign requested address
- 关于笔记本加固态硬盘装系统的问题的解决办法
- 深入浅出Stream和parallelStream