小嵩的毕设学习之路--基于Scut的FPS设计实现(17.12.20)

周三下午,图书馆闭馆,我刚好要去学院,那就想着顺便在机房呆着。可惜经过机房时,遗憾地发现学弟学妹们在上机,正要离去,惊讶的看到指导老师是之前教过IOS的,转身又看到另一个机房的老师也是之前教过软件测试的......
看着整个机房,氛围是那么熟悉,恍如昨日。
 但是我没有停留,因为知道再也回不去了。
-------------------------------------------------------------------------------------------------
 好吧,又***矫情了。
 上回说到,helloworld貌似有点问题,今天处理完手头的事情,就重新尝试打开之前的项目,也算熟悉一下流程吧。
 1.打开之前配好的“协议工具平台”,浏览器地址栏输入vae.cn(滑稽脸,跟着教程学着改了hosts文件,位置在C:\Windows\System32\drivers\etc,实际上是127.0.0.1),不过此处貌似有问题,因为文档配置环境时说到Scut6.7.9.0以上版本将不支持IIS部署方式,提供Console的Web支持Http协议?
 2.启动redis服务器,这个直接在官网下,双击运行就ok。
 3.打开VS,创建服务器端程序,之前也是一步步添加了官方类库、.dll引用,目标框架切换到.NET Framework4.5.1(不切换你试试?)
 4.在项目属性中选择调试,并在启动外部程序一栏加入GameServer.exe所在路径(该exe在第三步也是一块复制到项目中的,所以路径位于项目下面)。但之前在这一步卡住了,明明都添加好了,最后运行时黑窗口错误提示如下:
The game server is using Redis at host name“snail”...
 问题出来之后没急着百度,我自己把GameServer.exe的路径换成了本来的路径,位于SCUTServer\Console,果然就行了。但这样一来之前的复制就显得多此一举,治标不治本。
 今天一问度娘,才知道需要清空redis缓存。注意到SCUTServer\Redis\x64下面除了本身的redis-server.exe,还有一个redis-cli.exe。双击运行,输入命令:flushall,命令行提示OK。
 最后换回之前的路径,果然成功了。
 5.在刚才的调试界面同样需设置工作目录,直接设为项目的bin目录即可。
 6.在项目中找到MainClass.cs,除了类本身具有的OnStartAffer程序启动方法和OnServiceStop程序结束方法外,需要添加服务器端负责消息处理的几个方法。
 7.之前在“协议工具平台”上设置的协议号为100,所以在项目的Action文件夹下创建Action100.cs,再直接将平台上的服务器端代码直接复制过来。注意到内部有个ResponsePacket类,定义消息响应的数据包;另一方面,在之前定义的协议中有一个string类型的字段Content,因此这个类中就自动添加了这条属性。
 8.在Action100中的TakeAction方法即就是服务器接收到客户端发来的消息之后,需要做出的响应。之前已经定义了一个名为_packet的ResponsePacket类对象,因而在方法里直接_packet.Content=”hello,world”作为测试代码;
 做完上面这些工作,服务器这边已经基本成型,接着就是客户端。

 不过正如之前提到的一点,Scut6.7.9.0以上版本将不支持IIS部署方式,提供Console的Web支持Http协议。这就尴尬了,协议工具平台就是先部署的IIS,当时简直迷茫了一路,现在不知道有没有影响,看来得先弄明白这个问题才行,不然心里老是不自在。所以你们也看到了,现在思路依然很乱。



发布了15 篇原创文章 · 获赞 7 · 访问量 4961

猜你喜欢

转载自blog.csdn.net/qq_32472703/article/details/78947105
今日推荐