LUACN论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
热搜: YJWOW MagicStone BoL
12
返回列表 发新帖
楼主: xiaoyao1

面向对象和状态机的548生存猎

[复制链接]
发表于 2026-4-13 17:52:31 | 显示全部楼层
碎碎冰先生 发表于 2026-4-13 04:20 PM
我也不是很懂,我用我自己玩的给你解释可能会清楚一点。
首先要知道状态机可以基于当前状态传递上下文的 ...

版主讲的太抽象,太高深了,无论看了几遍都不懂
回复 支持 反对

使用道具 举报

发表于 2026-4-16 10:14:15 | 显示全部楼层
我天,太强了,终于找到这个了,感谢感谢!
回复 支持 反对

使用道具 举报

发表于 2026-4-17 08:15:13 | 显示全部楼层
本帖最后由 vshrd 于 2026-4-17 08:18 AM 编辑
行了行了 发表于 2026-4-13 02:24 PM
我觉得我会把每个技能写成函数,函数里面包含了施放这些技能的一些最基本的条件,比如目标敌对,目标或自 ...

看来你还是没有彻底理解到这个抽象概念
FSM诞生就是为了解决复杂需求的
你的回复中也说了.要考虑的情况太多了,比如切换目标了.出现ADD了

那么有没有可能,把切换目标了也做成一个状态?然后把ADD了也单独做成一个状态
这样专项专门处理.你只需要考虑这三个问题,就是在这个状态里该做什么?这个状态什么时候结束?这个状态结束时下一个状态切换成什么?
而完全不需要考虑全局上面的其他问题.
这样是不是就一下子简化了你的编码难度和代码维护管理难度了?
我反复强调的几个点,"万物皆可抽象!","状态是由你自己定义的,你想定义什么都可以!".
你甚至可以给boss也做状态.比如说boss释放震地技能时,你这边切换到震地状态.而状态里什么都不需要做,就是一个空逻辑状态.
如果你当前正在释放技能的话.那就检测谁的读条更快,需不需要打断等.

记住啊= =分割复杂需求.这才是状态机.他的诞生是让你编码更简单的,而不是更难的.
回复 支持 反对

使用道具 举报

发表于 2026-5-14 14:05:41 | 显示全部楼层
本帖最后由 碎碎冰先生 于 2026-5-14 02:09 PM 编辑
vshrd 发表于 2026-4-17 08:15 AM
看来你还是没有彻底理解到这个抽象概念
FSM诞生就是为了解决复杂需求的
你的回复中也说了.要考虑的情况 ...

版主我写了一个混合架构,是管道+责任链+优先级列表的,挺好用的。做流程控制、遍历控制再做具体判断。就是确保最高优先级的决策最先被评估,然后就短路。分层再每层内部做子决策链。
就像医院问诊台急救第一位,后面就按照病情去挂号,挂号好了再去科室医生诊断拿药回家,医生要做检查,抽血验血还是拍片子就是子决策。
原来也试着写状态机,我写的很细的话发现状态机需要的状态要爆炸了 最后只是做了战斗阶段的管理
回复 支持 反对

使用道具 举报

发表于 2026-5-14 17:24:35 | 显示全部楼层
碎碎冰先生 发表于 2026-5-14 02:05 PM
版主我写了一个混合架构,是管道+责任链+优先级列表的,挺好用的。做流程控制、遍历控制再做具体判断。就 ...

可以
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|Archiver|LUACN论坛

GMT+8, 2026-5-31 03:09 AM , Processed in 0.110186 second(s), 19 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表