GameFramework游戏框架搭建教程 - Fsm(1)

FsmManager是状态机管理器,负责管理所有状态机

打开IFsm,定义如下属性与方法;

image

打开Fsm,为其添加泛型,并实现IFsm接口

image

image

到这里先不管Fsm类,先去把FsmState类编写完善,同样为其添加泛型

/// <summary>

/// 状态基类

/// </summary>

/// <typeparam name="T">状态持有者类型</typeparam>

public class FsmState<T> where T : class

{

}

在GF的Fsm模块设计里,状态机有自身的一套事件系统,主要由FsmState进行订阅与响应,因此我们需要先在FsmState类的上面定义一个委托作为响应方法的模板

/// <summary>

/// 状态机事件的响应方法模板

/// </summary>

public delegate void FsmEventHandler<T>(Fsm<T> fsm, object sender, object userData) where T : class;

然后在FsmState里定义一个事件码与响应方法的字典,在构造方法里初始化

    /// <summary>

    /// 状态订阅的事件字典

    /// </summary>

    private Dictionary<int, FsmEventHandler<T>> m_EventHandlers;

    public FsmState()

    {

        m_EventHandlers = new Dictionary<int, FsmEventHandler<T>>();

    }

并为其添加事件订阅与响应的相关方法

image

image

025源码论坛声明 1、本网站中的绝大部分资源来源于网络, 本网站不保证所有资源的正确性和安全性,不为其合法性负责.
2、对于一切使用本网站资源而可能遭致的意外、疏忽、侵权及其造成的损失,本网站对其概不负责,亦不承担任何法律责任。
3、其他单位或个人使用、转载或引用本站原创文章时必须同时征得本025源码网的同意.
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时删除并致以最深的歉意。
5、如需要本站的游戏源码或搭建帮助,可以联系站长 15623571666(微信同号)或者扫描右侧二维码!

您可能还会对下面的文章感兴趣:

    cache
    Processed in 0.003309 Second.