KBEngine奇技淫巧<一>

news/2024/7/7 9:21:41

KBEngine奇技淫巧<一>

最近在读KBEngine代码,记录一下看到的奇技淫巧

命名规则

KBEngine的CPP命名规则是一个很诡异的命名规则,虽然有迹可循,但是不是匈牙利命名法,所以有点不适应。

成员变量

类内成员的命名是小驼峰+下划线组成,例如:

Network::NetworkInterface & networkInterface_;
Network::Address addr_;
uint8* datas_;
size_t datasize_;
size_t sentSize_;
size_t clientWindowSize_;
std::string assetsPath_;
std::string binPath_;
std::string options_;
uint64 lastTime_;
uint64 startTime_;
int64 pid_;
std::vector<std::wstring> sdkFiles_;
bool loadedSDK_;
std::wstring currSendFile_;
std::string out_;

一开始看其实挺不适应的,不过这个全看标哥心情。还好,所有的类成员都极其严格的
遵守这个规则,知道了这看成员变量还是舒服点。

容器变量

容器变量最后结尾会有一个s,代表复数的意思吧。

类型重定义

类型重定义是大写+下划线,例如:

typedef uint16													ENTITY_TYPE;											// entity的类别类型定义支持0-65535个类别
typedef int32													ENTITY_ID;												// entityID的类型
typedef uint32													SPACE_ID;												// 一个space的id
typedef uint32													CALLBACK_ID;											// 一个callback由CallbackMgr分配的id
typedef uint64													COMPONENT_ID;											// 一个服务器组件的id
typedef int32													COMPONENT_ORDER;										// 一个组件的启动顺序
typedef int32													COMPONENT_GUS;											// 一个组件的genuuid_sections产生随机数的区间段
typedef	uint32													TIMER_ID;												// 一个timer的id类型
typedef uint8													ENTITYCALL_CALL_TYPE;									// entityCall 所投递的call类别的类别
typedef uint32													GAME_TIME;
typedef uint32													GameTime;
typedef int32													ScriptID;
typedef uint32													ArraySize;												// 任何数组的大小都用这个描述
typedef uint64													DBID;													// 一个在数据库中的索引用来当做某ID
typedef uint32													CELL_ID;
typedef KBEUnordered_map< std::string, std::string >			SPACE_DATA;												// space中存储的数据

这都是我随便截取的代码,现在还没有加入思考。开工利是吧!!!


http://www.niftyadmin.cn/n/3921981.html

相关文章

[UE4]FBX导入时模型贴图半透明的解决办法

FBX导入UE4后&#xff0c;模型可能是这种半透明的状态&#xff1a; 解决办法&#xff1a; 1&#xff0c;打开模型的Material 2&#xff0c;修改Blend Mode为Masked 或者 Opaque 3&#xff0c;保存、应用即可。

KBEngine奇技淫巧<二>

KBEngine宏定义诡异的宏定义协议处理中的宏定义DEFINE_IN_INTERFACEBASEAPP协议声明宏NETWORK_MESSAGE_HANDLERKBEngine宏定义习惯KBEngine宏的作用诡异的宏定义 KBEngine引擎大约分为资源&#xff0c;脚本&#xff0c;网络&#xff0c;事件[逻辑]四个部分&#xff0c;在每一个…

C++98宏实现std::tuple

原文&#xff1a;http://geek.csdn.net/news/detail/61260 最近准备重构一下我的kapok库&#xff0c;让meta函数可以返回元素为kv的tuple&#xff0c;例如&#xff1a; struct person {std::string name;int age;META(name, age) //定义一个支持变参的meta函数 }; int main() {…

KBEngine奇技淫巧<三>

KBEngine奇技淫巧之操作处理各种Handler运行机制框架组织处理任务逻辑InitProgressHandlerBaseMessagesForwardClientHandler自成系统的handler总结各种Handler 研读KBEngine源码的时候&#xff0c;你经常会看到各种Handler结尾的类&#xff0c;搞懂这些类是很有必要的。我们以…

[UE4]AI中使用Tick()函数的性能问题

Tick()函数一般是debug时用的&#xff0c;正规的逻辑中&#xff0c;如果要用Tick函数&#xff0c;可以考虑用UE4提供的事件代理(Event Delegate&#xff1a;http://aigo.iteye.com/blog/2301010)。 参考&#xff1a;Using Tick() within AI? https://answers.unrealengine.com…

[UE4]不使用角色蓝图、动画蓝图、状态机,用“24K纯C++”实现动画播放

原文作者&#xff1a;玄冬Wong 不好意思&#xff0c;我稍稍标题党了&#xff0c;目前还不清楚如何用C代码来实现BlendSpace和Montage的逻辑&#xff0c;如果这两个文件也不我们创建了&#xff0c;那么以下内容就是真正意义上的纯C实现角色蓝图和动画蓝图。 逻辑用C&#xff0c…

KBEngine奇技淫巧<四>

KBEngine定时器定时器介绍EventDispatcherTimer 时间 定时器container_timeQueue_TimerTTimeprocessadd总结一下定时器介绍 是时候放出灵魂框架图了&#xff0c;KBEngine最重要的几个类 是的&#xff0c;这个图就说明了KBEngine引擎最重要的几个类。从程序来看&#xff0c;最…

[C++]为什么模板函数的声明与实现都放在.h头文件中

原文&#xff1a;http://www.360doc.com/content/13/0722/14/10072361_301717293.shtml 当你不使用这个模版函数或模版类,编译器并不实例化它 ,当你使用时&#xff0c;编译器需要实例化它&#xff0c; 因为编译器是一次只能处理一个编译单元, 也就是一次处理一个cpp文件,所以…