![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 78
Reece-Chen
低调的学习着。
展开
-
有限状态机FSM详解(一)
有限状态机在维基百科中的解释是:有限状态机(英语:finite-state machine,缩写:FSM)又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。至于为什么要学FSM,FSM可以把模型的多状态、多状态间的转换条件解耦。可以使维护变得容易,代码也更加具有可读性,也更加艺术。理解有限状态机首先需要理解整个模型。我们把灯的开关作为示例,...原创 2018-04-09 19:29:04 · 52135 阅读 · 5 评论 -
有限状态机FSM详解(二)
第一篇写好了接口,这篇来写具体实现。首先是State类,他要实现IState接口: public class JyState : IState { public string Name { get { return _name; } } public string Tag { get { return _tag; }...原创 2018-04-11 14:27:52 · 2183 阅读 · 0 评论 -
有限状态机FSM详解(三)
这篇讲解如何使用第二篇中写好的类。我们使用的是游戏角色的移动、跳跃、攻击、待机四个状态来讲,那么我们要构建出这四个状态,需要设计的模型是什么呢?需要设计一个角色类、一个驱动角色实例的运行环境<Unity的MonoBehaviour就行了>。那我们设计角色类,角色类中持有四个状态类的实例、一个状态机实例。首先是四个状态类: 移动状态类(继承State类) 移动状态类中...原创 2018-04-11 14:51:10 · 1440 阅读 · 0 评论 -
有限状态机FSM详解(四)
这篇接上篇给出整个代码和使用案例。角色类:public class Player { private JyStateMachine FSM; private MoveState _move; private JumpState _jump; private AttackState _attack; privat...原创 2018-04-11 15:20:35 · 1012 阅读 · 0 评论 -
C#可变参数的事件的实现以及思考
熟悉用c#事件的朋友都知道,c#事件必须传入固定数量的参数。我就喜欢用非固定参数的事件,于是自己琢磨了一套非固定参数的伪事件,希望大家给点意见和建议,讨论这种方法的好坏。这里实现用到了接口定义一个执行事件接口:public interface IEventAction { void ExecuteEvent(params object[] parms); }然后再写...原创 2018-04-11 17:15:34 · 1047 阅读 · 0 评论