⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stateobject.h

📁 一个模拟动作源码
💻 H
字号:
#pragma once
#include "TypeDefine.h"
#include "TransRule.h"

#include <list>
#include <string>
using namespace std;

class CStateObject
{
	typedef list<CTransRule*> LIST_TRANSRULE;

public:
	CStateObject(string strName);
	CStateObject(string strName, string strNextState);
	virtual ~CStateObject(void);

	virtual void Init(ENTITY_PTR* pEntity);
	virtual void tick() = 0;
	virtual void OnEnter() = 0;
	virtual void OnLeave() = 0;
	virtual void OnMsg(EnumMsgType eumMsgType, MSG_PTR* pMsg) = 0;
	virtual void AddActionHandlerFcn(string strHandlerName, void* pfcnHandler)=0;
	virtual void AddPredicateHandlerFcn(string strHandlerName, void* pfcnHandler);
	virtual string CheckTransition();
	virtual bool IsFinalState(){ return m_bIsFinalState; }

	string GetName(){ return m_strName; }

protected:
	ENTITY_PTR* GetEntityPtr(){ return m_pEntity; }

protected:
	LIST_TRANSRULE		m_listTransRules;
	string				m_strName;
	string				m_strNextStateName; // for Process
	ENTITY_PTR*			m_pEntity;
	bool				m_bIsFinalState;

};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -