美文网首页
游戏设计模式 之 代码半自动化生成——码妖

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

作者: 徐福气的小想法 | 来源:发表于2020-01-18 08:32 被阅读0次
    码妖.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

    相关文章

      网友评论

          本文标题:游戏设计模式 之 代码半自动化生成——码妖

          本文链接:https://www.haomeiwen.com/subject/zmcwactx.html