摘要: ## 算法介绍: 作用:在一个图中,提供一个起点A与一个终点B,给你找出一条估算出来较短的路 时间复杂度:n * log(m) ,n表示图中的节点数,m表示总边的数量 时间复杂度分析: 1. 一般游戏中的图是一个二维矩阵,所以每个点的方向也就上下左右这么几个,所以每个点枚举方向的时间为常数 2. 虽 阅读全文
posted @ 2023-07-07 15:00 ccsu_madoka 阅读(188) 评论(0) 推荐(0) 编辑
摘要: # UE代码-游戏AI-行为树LoadTree算法解析 ##### 首先第一步是看当前行为树是不是已经load过了,枚举LoadedTemplates,一个一个对比,有一样的就返回了 ![](https://img2023.cnblogs.com/blog/2078763/202306/207876 阅读全文
posted @ 2023-06-27 17:22 ccsu_madoka 阅读(133) 评论(0) 推荐(0) 编辑
摘要: this指针的小知识: 往往在类的成员函数中可以用this获取本身,好像this是C++封装的成员变量一样,但this并不是对象本身的一部分,所以sizeof的结果并不包含this指针 this只能在非静态成员函数中使用 非静态成员函数要返回对象本身的时候可以用:return *this 函数参数与 阅读全文
posted @ 2023-02-24 19:26 ccsu_madoka 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 全局变量使用: 作用是限定全局变量的作用范围,只能在当前文件使用,类似给它加了个private属性。 其他文件即使使用extern关键字修饰其声明也不可使用。 (为什么作用和其他几个差距那么大,原因是全局变量本身就是static,给它加没有意义。所以完全转换了static的作用,目的是节省关键字) 阅读全文
posted @ 2023-02-21 18:07 ccsu_madoka 阅读(51) 评论(0) 推荐(1) 编辑
摘要: 定义常量 const与#define的区别: A. const常量具有类型,编译器可以进行安全检查,#define没有类型,只是简单替换字符串 B. const只能定义整数或枚举的常量 const修饰变量 必须初始化 不可修改 指针与const const位于*左侧(const int * a):c 阅读全文
posted @ 2023-02-20 17:28 ccsu_madoka 阅读(76) 评论(0) 推荐(0) 编辑
摘要: # 1,处理黑板 ``` UseBlackboard()(当行为树资源有黑板,并且当前控制器没有黑板或者两个黑板不一样时执行) ``` # 2,加载并发起行为树 1,若未初始化行为树组件,新建行为树组件对象 2,BTComp->StartTree() 1,找到树的根节点 2,若行为树已执行并且根节点 阅读全文
posted @ 2023-02-08 10:48 ccsu_madoka 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 将起点与终点坐标转化为对应Poly: Detour是用Poly来寻路的,根据Poly上的边与点来算开销,以相邻的Poly来延申。 task提供了起点与终点坐标位置,所以需要先将坐标转化为对应的Poly才能开始寻路。 找poly的方法是用坐标定位到附近的Tiles,检查并收集Tiles中的Polys。 阅读全文
posted @ 2022-08-26 16:41 ccsu_madoka 阅读(452) 评论(0) 推荐(0) 编辑
摘要: Ue4 CharacterMovementComponent 角色移动组件 这里先简单介绍一下3种不同的网络角色: AutonomousProxy(自治端): ​ 一般为客户端,对具有其控制权的角色而言为自治端。 Authority (权威端): ​ 一般就是服务器,具有数据的决定权。 Simula 阅读全文
posted @ 2022-04-19 17:48 ccsu_madoka 阅读(1243) 评论(0) 推荐(0) 编辑
摘要: 1. 相关技术文档 https://zhuanlan.zhihu.com/p/264799345 https://blog.csdn.net/u012999985/article/details/78384199 http://www.aclockworkberry.com/custom-struc 阅读全文
posted @ 2022-04-18 11:15 ccsu_madoka 阅读(2047) 评论(3) 推荐(0) 编辑
摘要: what: ​ 定义函数前面加inline,跟宏类似,会在每个调用点“内联地“展开。 ​ (可以理解为将函数去掉,然后将函数的实现部分放到每一处调用的地方) why: ​ 为什么要用内联函数,很容易发现 ​ 首先:内联函数有函数的优点: ​ 1,易读,比起一堆表达式与计算直接罗列,阅读函数的代价更低 阅读全文
posted @ 2022-03-24 15:25 ccsu_madoka 阅读(109) 评论(0) 推荐(0) 编辑