多人即时战斗游戏服务端系列[3]--日志类及Config类以及Excel生成类
来源:互联网 发布:数据分析报告范文 编辑:程序博客网 时间:2024/06/06 16:28
这里说一些辅助类的设计及介绍.
依然上类图先:
首先是日志类和Config,这个库以及Config库取自暗黑3的民间模拟器mooege, 当时看了写的简短小巧就直接拿过来用了.
后来虽然发现一些问题,进行简单修改和优化之后,在项目中进行使用了.
首先是日志类,看了下类图也就没几行,简单的就是一些输出层级,带有可外部加载的扩展方法,ExtensionLogTarget,通过反射加载,然后进行一些扩展目标的输出.
修改部分的话,比较简单,原先日志是同步输出,这样会导致卡掉一些时间比较敏感的运算,这边采用了独立线程和队列模式,异步写出,问题就是当心写入数据太多,吃大量内存问题.
Config采用Nini库进行Ini文件读写,这个也没什么好说的.
这边比较简单的扩展就是,允许进行继承.
比如类似这样配置
[ConfigA]Fps=60MaxHp=100[ConifgB]Fps=30
BHP = 100ConfigB继承于ConfigA,共享2个配置Fps,MaxHp,ConfigB多一个配置BHP,
但是ConfigB中的Fps值=30,用于控制多个模式和扩展,用起来还是比较方便的.
关于Excel使用,一般策划都比较喜欢用Excel,一般情况下都会采用Excel导出成XML后.手工匹配进行信息字段处理.
这里采用VS插件模式,直接把Excel考入程序库,类似这样
生成之类代码,类似这样
//Code Gen By FileGenLoaderDomain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=febbd3066b495fa3//Start Run://CodeBase file:///D:/Windows/Microsoft.Net/assembly/GAC_MSIL/FileGenLoaderDomain/v4.0_1.0.0.0__febbd3066b495fa3/FileGenLoaderDomain.exe//wszInputFilePath:E:\TankApp\TankApp\Config\得分难度.xlsx//wszDefaultNamespace:TankApp.Config//BasePath:D:\Windows\Microsoft.Net\assembly\GAC_MSIL\FileGenLoaderDomain\v4.0_1.0.0.0__febbd3066b495fa3//Code Gen By ExcelCodeBuilder...using System;using CsvCodeGen;namespace TankApp.Config { [Serializable] public partial class 得分难度 {[Config(Index = 0, IsKey = true)]public Double 分值 { get;set; }[Config(Index = 1)]public Double 得分难度分 { get;set; }[Config(Index = 2)]public String 说明 { get;set; }public void Parse(Double 分值,Double 得分难度分,String 说明){ this.分值 = 分值;this.得分难度分 = 得分难度分;this.说明 = 说明;} } public partial class ConfigList : CsvCodeGen.CfsConfig { [ConfigAutoParse(File = "得分难度.xlsx", ParseType = "CsvCodeGen.ExcelParse")] public static Config<Double, 得分难度> 得分难度 = new Config<Double, 得分难度>(); }}//User Plug:CsvCodeGen.dll Type:CsvCodeGen.ExcelCodeBuilder
VS支持中文字段,用起来还是比较爽的,如果不支持中文,我们需要一些翻译,或者要求他们提供英文表格.
比较麻烦的地方,改了字段之后,都要重新拷贝编译一遍.
1 0
- 多人即时战斗游戏服务端系列[3]--日志类及Config类以及Excel生成类
- 多人即时战斗游戏服务端系列[2]--90坦克Online游戏对象介绍以及渲染机制
- 多人即时战斗游戏服务端系列[1]--90坦克Online网络版详解
- appstore收入分析及策略类游戏的战斗设计
- Excel潜能系列——Excel游戏(2v2战斗~5v5战斗模拟器)【更新V1.5】 Einsphoton
- 中国象棋——即时类游戏
- cocos2dx 3D战斗类游戏制作:【二】——3D运动模式小准备
- cocos2dx 3D战斗类游戏制作:【一】——数据库之一
- cocos2dx 3D战斗类游戏制作:【一】——数据库之二
- 游戏日志类
- SoundPool类-游戏中即时音效的简介
- 游戏服务端IOCP模型,自己封装的一个类,3行代码搞定服务端。
- 游戏服务端IOCP模型,自己封装的一个类,3行代码搞定服务端
- cocos2dx 3D战斗类游戏制作:【二】——3D运动模式小准备之二
- cocos2dx 3D战斗类游戏制作:【三】——基于数据库的3D精灵动画1
- cocos2dx 3D战斗类游戏制作:【三】——基于数据库的3D精灵动画2
- cocos2dx 3D战斗类游戏制作:【四】——一些零散笔记,3D小地图,android surfaceview等
- 生成excel类
- HOOK技术浅谈
- 细说 iOS 消息推送
- 第九周 结果预测(二)
- Oracle数据库,resultSet.getObject获取时间类型问题的解析
- 新生选拔赛一
- 多人即时战斗游戏服务端系列[3]--日志类及Config类以及Excel生成类
- 系统分析与设计(技术专家)讲师
- hdu 1026 Ignatius and the Princess I
- [LeetCode] 3Sum Closest
- [LeetCode] 3Sum Solution
- C++ 虚函数与纯虚函数
- 第12周项目1.5
- 禁止Html5在手机上屏幕页面缩放
- 求一个字符串的最长连续回文串(模板)