游戏设计模式 之 代码半自动化生成——码妖

码妖.gif

编程语言:Lua
生成的代码语言:TypeScript
Git仓库地址:https://github.com/superXfx/GameDesignPatterns.git

痛点——
基于状态机编写代码时,我们要为每个组件编写 状态枚举 ,每个State的类 ,以及Ctrl 三部分。
多写几个就会发现,在没有编写具体逻辑的情况下,每个组件包含的类 只有命名差异。
这就导致重复性的工作存在——重复的工作就得交给程序(不带“员”)去做~

解决思路——
先要问,代码是什么?
给机器的指令?逻辑化语言?
对,但却复杂化了。简单来讲,任何可被记录的语言都是一种 字符系统,在简单讲,就是 字符串!
这样问题就简化为字符串的处理啦。
按照一定的配置生成字符串即可。

方案——
1、用json配置state枚举,CtrlName等信息
2、用Lua作为开发语言,这个只是因为自己比较熟,任选一种脚本语言都行。
3、运行Lua脚本,生成一个个 .ts 文件,放在对应的目录下。

实现——
1、配置文件


image.png

image.png

如图,配置一波 状态枚举,Ctrl与状态枚举的关系,即可完成配置。

2、代码


image.png

如图,看这个run函数,即可明白我要做的事情。


image.png

至于原理,就像图上这样,一波字符串操作,然后将其保存在以.ts为后缀保存下来。
另外三个函数同理,就不贴图了。

3、成果


image.png

run一下,你就获得给予状态机的框架啦,往里面填填具体逻辑即可。

皮一下,我称其为 码妖 ~(✪ω✪)

扩展阅读
《码妖》
https://www.jianshu.com/p/4ef0467b0af5

你可能感兴趣的:(游戏设计模式 之 代码半自动化生成——码妖)