太阳TS代码组织示例
以下仅为一种基础示例,适合还没形成自己独特的分类风格前 可以借鉴的方式
基础示例 (假设编码者姓名为李四)
- App.ts //游戏入口
- solar // 太阳TS基础框架
- lis //自己的唯一标识 可为自己的网名或姓名拼音缩写
- lib //自定义的基础框架(如果有的话)
- util //基础工具包 里面为无状态的静态方法
- common //游戏基础 如全局变量 玩家基础属性 多面板 胜利失败等
- data // 这里存放xlsx 与表格编译后的ts 以配置下面的state
- shua_guai.xlsx //可使用wps编辑需要刷怪的单位
- shua_guai.ts //此文件为shua_guai.xlsx编译而得
- state //以数据为驱动的逻辑触发 优先把功能以此风格实现 以沉淀通用的逻辑给xlsx配置使用
- common //基础state
- ability //技能
- item //物品
- unit //单位
- lian_gong_fang //练功房 (以功能模块划分)
- boss //特殊boss的机制
- event //游戏世界事件
- ... //更多
- gui //用户交互的界面
- hero_choice //英雄选择
- nandu_choice //难度选择 (英文拼音混搭也是可以理解的)
- tian_fu // 天赋树
- ... //更多
- archive //存档
- shop //商城道具
- ... //更多
TS State文件命名规范:
- 类名首字母必须大写
- 类名使用大驼峰命名法
- 类名必须使用英文命名
- 类名英文命名原则,按照技能功能性 --命名,
如:一个范围圆形伤害技能,
(1) 如:一个范围圆形伤害技能,CircularRangeDamage,
(2) 在加上是通过什么时候触发这个技能。
(3) 举例:是攻击触发:CircularRangeDamageOnAttack
(4) 举例:是释放技能触发:CircularRangeDamageOnSpell
(5) 后缀加上“State”:CircularRangeDamageOnSpellState
*. 常用参数,在最上面配置对象:static config: {id: “参数1”,id2: “参数2” }
TS State 编写帮助
变量优先设计为xlsx配置
- 需要做的功能请新建一张空白地图做
- 做完之后再以编译表格或安装TS或复制代码文件(夹)的方式移植到需要的地图里
- A: 为什么不直接在需要此功能的地图上写代码,而是以这种更麻烦的方式去做?
- Q: 当你在新地图编写功能时你将无法引用旧代码,这样能保证写出的代码是低耦合可独立的组件,即这个功能在任意一张图即使是空白图也能运行。
当你移植这些功能到地图时,你将能保证此功能的通用性和可移植性是很方便的,这样在做下一张图时就可以以搭建积木的方式组装自己的地图功能。