Cherno大佬的GameEngine学习笔记(4)-添加EventSystem

因为这段时间在忙其他的事情,从上一部分到现在时间已经比较长了。写这个时候学到了很多c++的内容,感觉都蛮实用的。

首先是枚举类型enum,去看了c++primer的讲解,记住的主要内容是enum class相较于enum而言,限定了作用域,而且enum声明的枚举类型可以像int类型一样直接进行计算。Cherno大佬解释了为什么category用自己定义的BIT来生成相应的类型编号,这样就可以直接对两种eventcategory进行&或者|的操作,判断两个event的category是否相同或者让一个event具有多种category。

然后便是宏定义了,EVENT_CLASS_TYPE(type),一个宏定义了三个函数,这样在写子类的时候,一个用这样一个宏就可以声明出这些函数,写起来方便了很多。每一段最后的 \ 是一个连接符,因为#define的内容必须在一行内写完,而当一行的内容实在是太长时可以在一段的最后加上 \ 然后在下一行继续写,这样的话在编译的时候,编译器还是会将 \ 前后的内容当作一行处理,起到了连接符的作用。单井号 # 可以将后面所接的部分转化为字符串类型,起到了像是强制类型转换的作用吧,这就是为什么对于const char* 类型的GetName函数,可以直接将#type作为结果返回。双井号 ## 是起到连接作用,假如在#define的宏定义中写a##b,那编译器就会处理成ab,不过这个图里倒是没有用到双井号。

大佬定义的EventDispatcher类这次我先没有实现,想等具体用了这个类,根据实例体会了它的作用再自己手写一遍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值