摘要: 变量、数组、命令别名
more >>
最近项目增加大量的怪物AI,涉及到一些持续性的动作(跑向目标点、追击敌人等),之前的AI虽然是用行为树的想法做的,但对于持续动作状态的终止都是通过在代码中加条件判断实现的。所以不能达到“写好条件、动作,其他的让策划来”的目的。所以觉得需要改进一下~ 这里对整个过程的思考做下记录,有些地方也还没有想明白。
more >>
主要讨论静态地图的一些想法(基本地图不是随机生成的,而是有初始模版)
在游戏的AI寻路中最普通的就是全地图的A星,但这种方法几乎不会在游戏中使用(除非地图非常小),另外一个就是将整块大地图分为一个个的小格子,每个格子之间可以设置连通点(如果名没有连通点则认为不可通过)然后先进行格子之间的A星决定通过哪些格子可以到达目的地,格子之间的A*可以在生成地图时预处理,提前将每个格子之间的寻路存为静态数据。这样每次在进行A星时,先找到要通过的格子,然后在格子中找到连通点,然后只需要在当前格子中找当前点到连通点的A星路径就可以了。
还有一个在格子基础上的改进就是,在分格子时,通过将地图中的可行走区域分为尽量少的图多边形(每个多边形中不包含任何不可走区域,任意两点之间可以直线连通)这样将可行走区域和不可行走区域区分开来,会再次省略掉块内的A星。但在制作地图时可能需要策划或者地图维护人员通过工具或手动将地图进行分割(我们是策划使用工具分出基础块,然后在细节调整)这样可以保证尽可能少的块(减少预处理时的A星),以及块内的直线连通,每次寻路时只需要找到需要通过的块,以及块与块之间的连通点(可以是多个,在预处理块时也可以通过不同的连通点,进行路径权值的差异化),因为在块内直线连通,所以当前点与块连通点的连线所构成的路径就是寻路结果,虽然不一定是最优的(A星也不是)但基本不会感觉怪异(可以多设置连通点,让块间移动更自然,但也别太多).
未完待续
一个有固定长度的,用于存储一段具有相同的类型的元素的连续块。
1 | // 声明一个长度为5的整型数组 |
字面量声明数组可以快速创建数组并进行初始化。
1 | // 声明一个长度为5的整型数组,并进行初始化 |
长度5
可以使用...
来代替,...
代替数组长度时会根据初始化时的数组元素的个数来确定该数组的长度。
1 | // 数组长度让Go自动计算,结果和上面的一样 |
一些特殊情况可以需要给数组中的某几个元素设定值,比如:数组的第三个值是100 其他值均为默认值。则可以通过指定特定元素的值来声明此类数组。
1 | // 声明并初始化第三个值(索引为2)为100的数组 |
这样声明的array数组初始时 array[2]=100, 其他均为int类型的零值(0)。
一般如果数组太大在传递时尽量使用指针,避免占用太多空间
常用的
[count]<leader>cc
注释N行或注释掉选中行[count]<leader>cu
取消注释(与cc相对)[count]<leader>c<space>
如果选中的第一行已经被注释则所有选中行都变为非注释,如果第一行为非注释,则再次注释所有内容。[count]<leader>ci
切换选中行的注释状态(已经注释的变为未注释,未注释的变为注释)<leader>c$
注释当前行光标所在位置及之后的内容<leader>cA
在行末添加注释分隔符并进入插入模式(一般给当前行写说明时会用)不常用的
[count]<leader>cn
[count]<leader>cm
[count]<leader>cs
[count]<leader>cy
基本等于cc<leader>ca
切换分隔符[count]<leader>cl
基本等于cc[count]<leader>cb
基本等于cc硬链接相当于对文件的复制(可以这样理解但却并未进行内容的复制),通过新建一个与指向某个档案内容的inode,来实现两个文件访问的是同一个内容。所以新建连接的所有属性都和原链接文件相同。
硬链接好处
硬链接最大的好处就是安全,可以避免一个链接文件被删除后无法正确读取数据的问题。因为可以通过另外一个链接文件来访问。
硬链接限制
相当于建立一个快捷方式,来指向原链接文件。当原链接文件(档案)被删除时,建立的软连接也就无效了。
硬链接示意图(图片来源于《Linux鸟哥私房菜》)
软连接示意图(图片来源于《Linux鸟哥私房菜》)
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true